Рубрика «Оптимизация»

Вопросы, связанные с оптимизацией запросов.

Столбцы, допускающие NULL-значения, и производительность

Пересказ статьи DANIEL HUTMACHER. Nullable columns and performance Яд NULL Рассмотрим следующий скрипт: — Создаем внешнюю таблицу и добавим в нее несколько строк CREATE TABLE #outer ( i int NOT NULL, CONSTRAINT PK PRIMARY KEY CLUSTERED (i) ); INSERT INTO #outer (i) VALUES (1); WHILE (@@ROWCOUNT<100000) INSERT INTO #outer (i) SELECT MAX(i) OVER ()+i FROM …

Значение уровня совместимости базы данных в 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 сравнивает первые строки обоих отсортированных входов. Затем сравнение продолжается со следующими строками второго входа …

Nested Loops Join

Пересказ статьи Bert Wagner. Visualizing Nested Loops Joins And Understanding Their Implications О чем говорят нам физические операции соединения Каждый имеет свой метод чтения плана выполнения при настройке медленных SQL-запросов. Я вначале предпочитаю смотреть на то, какие операции соединения используются: Эти три иконки могут не представлять собой очевидные места для начала поиска проблем в медленных …

Изучение плана запроса в SQL

Пересказ статьи Dennes Torres. Exploring Query Plans in SQL SQL Server сохраняет наиболее часто используемые планы выполнения в кэше, поэтому их не требуется перекомпилировать при каждом выполнении запроса. Как мы можем воспользоваться этим, чтобы найти потенциальные проблемы производительности в планах выполнения? Давайте попытаемся отыскать некоторые возможности для оптимизации, используя информацию, содержащуюся в кэше планов SQL …

Есть ли смысл теперь использовать VARCHAR(n)?

Пересказ статьи Rob Garrison. What’s the Point of Using VARCHAR(n) Anymore? Когда вы сохраняете большие символьные строки или любые другие типы данных, которые вы собираетесь записать как VARCHAR или VARBINARY, имеются факторы, которые влияют на то, как эти данные хранятся внутри SQL Server. Это, в свою очередь, влияет на производительность вставки и обновления.

Анатомия записи

Пересказ статьи Paul Randal. Inside the Storage Engine: Anatomy of a record Что представляют собой записи? На упрощенном уровне запись — это физическое хранилище, связанное со строкой в таблице или индексе. Но не все так просто…

Статистика в SQL Server

Пересказ статьи Grant Fritchey. Statistics in SQL Server Оптимизатор запросов SQL Server опирается на статистику для построения адекватного плана запроса. Если статистика неверна, устарела или отсутствует, вы имеете весьма слабую надежду на хорошую производительность ваших запросов. Поэтому важно понимать, как SQL Server поддерживает статистику распределения. Что такое статистика? Оптимизатор запросов SQL Server использует статистику распределения, …

Внутри оптимизатора: Оценка стоимости плана

Пересказ статьи Paul White. Inside the Optimizer: Plan Costing Оптимизатор SQL Server генерирует множество физических альтернатив плана на основе логических требований, выраженных на T-SQL. Если требуется полная оптимизация на основе стоимости, стоимость назначается каждому итератору в каждом альтернативном плане, и, в конечном счете, план с наименьшей общей стоимостью выбирается для исполнения.