Записи с меткой «SQL Server»

Оптимизация запросов, передаваемых непосредственно

Пересказ статьи Bert Wagner. Optimizing for Ad Hoc Workloads Кэш планов выполнения — отличная вещь: после затраченных усилий на построение плана запроса SQL Server сохраняет этот план в кэше планов для повторного использования в дальнейшем.

Кардинальное число

Пересказ статьи Bert Wagner. Cardinality: Not Just For The Birds При построении индексов для ваших запросов порядок столбцов в ключе индекса имеет значение. SQL Server наиболее эффективно использует индекс, если данные в этом индексе сохраняются в том же порядке, какой требуется для вашего запроса при выполнении соединения (join), фильтрации (where), группировки (group by) или сортировки …

Основы, и использование хинта NOLOCK в SQL Server

Пересказ статьи Esat Erkeç. Essentials and usage of NOLOCK hint in SQL Server Основная идея механизма блокировок в SQL Server состоит в контроле согласованности транзакций. Согласно этому принципу, если процессу требуется выполнить операции вставки, удаления или обновления, ядро SQL Server блокирует строку или строки и не позволяет другим процессам получить доступ к данным до завершения …

Почему не следует использовать SELECT * в рабочих системах (никогда!)

Пересказ статьи Gavin Draper. Why You Shouldn’t Use SELECT * In Production Systems (EVER!) Это не значит, что я никогда не использую операторы SELECT *; обычно я использую их для прямых запросов на стадии разработки. Моё предупреждение относится к их использованию в рабочих системах.

Какой-то индекс в моем индексе

Пересказ статьи Gavin Draper. Waiter Waiter There’s an Index in my Index Речь пойдет о том, как SQL Server обращается к одновременно к кластеризованному и некластерихованному индексам при поиске закладок.

Логические операции чтения SQL Server — о чем они на самом деле говорят нам?

Пересказ статьи Ami Levin. SQL Server Logical Reads – What do they really tell us? Трассировка SQL Server, которую наиболее часто используют администраторы баз данных для оценки производительности запросов, предоставляет счетчик ‘logical reads’ (логические чтения), на который многие администраторы полагаются при оценке производительности ввода/вывода запросов. В данной статье мы проверим истинность этих счетчиков и приведем …

Предотвращение выполнения всего скрипта

Пересказ статьи Solomon Rutzky. Prevent Full Script Execution (Understanding and Using PARSEONLY and NOEXEC) Иногда, работая над SQL-скриптом, мне не нужно выполнять весь написанный код. Например, при разработке сложного скрипта мне требуется тестировать части кода. Зачастую случайные нажатия F5, когда я забываю выделить нужный фрагмент, запускают весь скрипт от начала с нежелательными последствиями.

Значение уровня совместимости базы данных в SQL Server

Пересказ статьи Glenn Berry. The Importance of Database Compatibility Level in SQL Server До SQL Server 2014 уровень совместимости базы данных ваших пользовательских баз, как правило, не являлся требующим внимания аспектом, по крайней мере, с точки зрения производительности. В отличии от уровня файлов базы данных (который автоматически апгрейдится, когда вы восстанавливаете или присоединяете базу данных …

Детали применения Hash Match Join

Пересказ статьи Bert Wagner. Visualizing Hash Match Join Internals And Understanding Their Implications Hash Match Joins (соединения при поиске совпадений в хэше) — надежные рабочие лошадки в среде физических операторов соединения.

Соединения слиянием (merge join)

Пересказ статьи Bert Wagner. Visualizing Merge Join Internals And Understanding Their Implications Merge Joins Merge Joins (соединения слиянием) теоретически являются самыми быстрыми физическими операторами соединения, однако они требуют, чтобы данные обоих входов были отсортированы. Базовый алгоритм работает следующим образом: SQL Server сравнивает первые строки обоих отсортированных входов. Затем сравнение продолжается со следующими строками второго входа …