Skip to content

Еще одна причина, по которой я люблю динамический SQL: параметры OUTPUT могут быть входными параметрами

Пересказ статьи Erik Darling. Another Reason Why I Love Dynamic SQL: OUTPUT Parameters Can Be Input Parameters


За годы было много написано о динамическом SQL, но недавно я столкнулся с ситуацией, когда мне понадобилось переписать один код с минимальным воздействием на другие части хранимой процедуры.

Требовалось установить ряд переменных в значения столбцов таблицы, но загвоздка заключалась в том, что некоторые значения, которые требовалось установить, также необходимо было передать в качестве аргументов поиска.
Continue reading "Еще одна причина, по которой я люблю динамический SQL: параметры OUTPUT могут быть входными параметрами"

Получение плана выполнения запроса в PostgreSQL

Пересказ статьи sabyda. Getting a Query Execution Plan in PostgreSQL


Введение


Часто необходимо проверить производительность только что написанного запроса в PostgreSQL в поисках способа улучшить его производительность. Для этого вам нужно получить отчет о выполнении запроса, который называется планом выполнения. План выполнения запроса дает суммарную информацию о выполнении запроса с подробным отчетом о времени, потраченном на каждом шаге, и затратах на его выполнение.
Continue reading "Получение плана выполнения запроса в PostgreSQL"

Как решить, нужно ли вам секционировать таблицы

Пересказ статьи Kendra Little. How To Decide if You Should Use Table Partitioning


О секционировании таблиц было написано очень много. Это сложная функциональность, и вы днями можете читать, чтобы только понять, как это можно применить. Но улучшит ли это производительность? Секционирование таблиц дает большие преимущества для некоторых приложений, но вызывает сильную головную боль для других.
Continue reading "Как решить, нужно ли вам секционировать таблицы"

Установка частоты выборки для автоматического обновления статистики

Пересказ статьи Matthew McGiffen. Setting the Sample Rate for Automatic Statistics updates


Статистика жизненно важна серверу БД, чтобы выполнять ваши запросы наиболее производительным способом. Глубокое понимание работы статистики действительно помогает при настройке производительности. Continue reading "Установка частоты выборки для автоматического обновления статистики"

Отключение некластеризованных индексов для развлечения и пользы

Пересказ статьи Andy Galbraith. Disabling Non-Clustered Indexes For Fun and Profit


Одним из часто цитируемых практических советов в ETL является отключение некластеризованных индексов при загрузке данных. Общепринятое мнение заключается в том, что вы отключаете некластеризованные индексы, выполняете загрузку, а затем включаете некластеризованные индексы, что функционально перестраивает их с вновь загруженными данными (шаг, который должен выполняться после загрузки любого объема, даже если вы НЕ отключали ваши индексы - перестраивайте эти ставшие фрагментированными индексы!) Continue reading "Отключение некластеризованных индексов для развлечения и пользы"

Методы авторизации SQL Server, логины и пользователи базы данных

Пересказ статьи Greg Larsen. SQL Server authentication methods, logins, and database users


Настройка и управление безопасностью SQL Server является важной частью построения и обслуживания среды вашего SQL Server. Безопасность SQL Server - это огромная тема, которая не может быть полностью раскрыта в одной статье. Данная статья начинает с нескольких фундаментальных вопросов безопасности SQL Server: методов авторизации SQL Server, логинов и пользователей базы данных.
Continue reading "Методы авторизации SQL Server, логины и пользователи базы данных"

Оптимизатор запросов предлагает неправильный индекс и план запроса - почему?

Пересказ статьи Mike Byrd. Query Optimizer Suggests Wrong Index and Query Plan -- Why?


При подготовке презентации на конференцию я наткнулся (случайно) на неожиданный план запроса. Этот план включал предлагаемый индекс, который, к сожалению, и привел к этому очень необычному плану запроса. Данная статья не о том, "как сделать лучше", а, скорее, является началом дискуссии, почему оптимизатор сделал то, что сделал.
Continue reading "Оптимизатор запросов предлагает неправильный индекс и план запроса - почему?"

Перераспределение данных по файлам

Пересказ статьи Steve Jones. Redistributing Data Across Files


Много людей, которые поневоле занимаются администрированием баз данных, могут не знать, как таблицы распределяются по файлам в файловых группах. Часто оказывается, что менее опытные люди путаются с файлами и файловыми группами, а также с тем, как SQL Server распределяет данные по файлам, и почему данные не перемещаются при добавлении файлов.

Continue reading "Перераспределение данных по файлам"

10 ваших топовых идей для SQL Server

Пересказ статьи Brent Ozar. Your Top 10 Ideas for SQL Server


Вы отправляете тысячи отчетов о багах и пожеланий на feedback.azure.com, и вот 10 топовых запросов по результатам голосования:

Continue reading "10 ваших топовых идей для SQL Server"

Поиск фрагмента текста по всей базе данных


Проблема


Нужно найти строки, содержащие заданный фрагмент текста, в любых столбцах любых таблиц базы данных.
Мне неоднократно встречался такой вопрос в профессиональных социальных сетях. Предлагаемое решение написано для SQL Server, хотя его без особого труда можно адаптировать и для других СУБД/диалектов. Continue reading "Поиск фрагмента текста по всей базе данных"