Пересказ статьи Brent Ozar. Using Triggers to Replace Scalar UDFs on Computed Columns
Ваша база данных усеяна вычисляемыми столбцами, чье определение включает скалярную пользовательскую функцию. Даже вплоть до SQL Server 2019, который быстрей обрабатывает скалярную функцию,
любая таблица, которая включает скалярную функцию приводит к однопоточному доступу к таблице. В этом случае, триггер может реально стать отличной заменой.
Продолжить чтение "Использование триггеров для замены скалярных UDF на вычисляемых столбцах"
Пересказ статьи sabyda. Getting a Query Execution Plan in PostgreSQL
Введение
Часто необходимо проверить производительность только что написанного запроса в PostgreSQL в поисках способа улучшить его производительность. Для этого вам нужно получить отчет о выполнении запроса, который называется планом выполнения. План выполнения запроса дает суммарную информацию о выполнении запроса с подробным отчетом о времени, потраченном на каждом шаге, и затратах на его выполнение.
Продолжить чтение "Получение плана выполнения запроса в PostgreSQL"
Пересказ статьи Kendra Little. How To Decide if You Should Use Table Partitioning
О секционировании таблиц было написано очень много. Это сложная функциональность, и вы днями можете читать, чтобы только понять, как это можно применить. Но улучшит ли это производительность? Секционирование таблиц дает большие преимущества для некоторых приложений, но вызывает сильную головную боль для других.
Продолжить чтение "Как решить, нужно ли вам секционировать таблицы"
Пересказ статьи Matthew McGiffen. Setting the Sample Rate for Automatic Statistics updates
Статистика жизненно важна серверу БД, чтобы выполнять ваши запросы наиболее производительным способом. Глубокое понимание работы статистики действительно помогает при настройке производительности.
Продолжить чтение "Установка частоты выборки для автоматического обновления статистики"
Пересказ статьи Andy Galbraith. Disabling Non-Clustered Indexes For Fun and Profit
Одним из часто цитируемых практических советов в ETL является отключение некластеризованных индексов при загрузке данных. Общепринятое мнение заключается в том, что вы отключаете некластеризованные индексы, выполняете загрузку, а затем включаете некластеризованные индексы, что функционально перестраивает их с вновь загруженными данными (шаг, который должен выполняться после загрузки любого объема, даже если вы НЕ отключали ваши индексы - перестраивайте эти ставшие фрагментированными индексы!)
Продолжить чтение "Отключение некластеризованных индексов для развлечения и пользы"