Skip to content

Как сделать запросы SELECT COUNT(*) очень быстрыми

Пересказ статьи Brent Ozar. How to Make SELECT COUNT(*) Queries Crazy Fast


Когда вы выполняете SELECT COUNT(*), скорость результатов во многом зависит от структуры и настроек базы данных. Давайте проведем исследование на таблице Votes в базе данных Stack Overflow - 300-гигабайтной версии 2018-06, в которой таблица Votes содержит 150784380 строк и занимает пространство около 5,3Гб.
Продолжить чтение "Как сделать запросы SELECT COUNT(*) очень быстрыми"

Оптимизированнные для памяти таблицы в SQL Server

Пересказ статьи Monica Rathbun. Memory Optimized Tables in SQL Server



Иногда, когда я пытаюсь узнать о новой концепции, мой мозг отключается. Разговоры обо всем, что использует концепцию «In Memory», из той же серии. Важно отметить, что «In Memory» является маркетинговым термином для ряда особенностей в SQL Server, которые имеют общее поведение, но по сути не связанных между собой. Продолжить чтение "Оптимизированнные для памяти таблицы в SQL Server"

Как думать подобно SQL Server: когда поиск таковым не является

Пересказ статьи Brent Ozar. How to Think Like the Engine: When a Seek Isn’t


В прошлый раз я ввел понятие предикатов сканирования: операции плана выполнения, которые неспособны выполнить непосредственный поиск требуемых строк. Давайте возьмем другой запрос:
Продолжить чтение "Как думать подобно SQL Server: когда поиск таковым не является"

Как думать подобно SQL server: порядок столбцов в индексе весьма важен

Пересказ статьи Brent Ozar. How to Think Like the Engine: Index Column Order Matters a LOT


Мы работали с кластеризованным индексом таблицы Users, который построен на столбце identity, значения в котором начинаются с 1 и продолжаются до ...:
Продолжить чтение "Как думать подобно SQL server: порядок столбцов в индексе весьма важен"

Как думать подобно SQL Server: что лучше - ключевые столбцы или включенные в индекс?

Пересказ статьи Brent Ozar. How to Think Like the SQL Server Engine: Should Columns Go In the Key or the Includes?



В предыдущей статье я предлагал вам создать любой из двух следующих индексов:
Продолжить чтение "Как думать подобно SQL Server: что лучше - ключевые столбцы или включенные в индекс?"

Как думать подобно SQL Server: более широкие индексы для борьбы с плохим T-SQL

Пересказ статьи Brent Ozar. How to Think Like the SQL Server Engine: Building Wider Indexes to Deal with Bad T-SQL



В последней статье мы столкнулись с проблемой при выполнении этих двух запросов:
Продолжить чтение "Как думать подобно SQL Server: более широкие индексы для борьбы с плохим T-SQL"

Как думать подобно SQL Server: если статистика не помогает

Пересказ статьи Brent Ozar. How to Think Like the SQL Server Engine: When Statistics Don’t Help



В предыдущей статье мы видели, как SQL Server оценивает число строк, используя статистику. Давайте напишем две слегка отличающихся версии нашего запроса - на этот раз для поиска пользователей за один день - и посмотрим, какие будут даны оценки:
Продолжить чтение "Как думать подобно SQL Server: если статистика не помогает"

Как думать подобно SQL Server: использование статистики при построении планов запроса

Пересказ статьи Brent Ozar. How to Think Like the SQL Server Engine: Using Statistics to Build Query Plans


В последнем случае SQL Server выбирал между поиском по индексу и сканированием таблицы, балансируя вокруг точки перехода, чтобы выяснить, какой из вариантов будет более эффективным для выполнения запроса.
Продолжить чтение "Как думать подобно SQL Server: использование статистики при построении планов запроса"

Как думать подобно SQL Server: что означает поиск ключа?

Пересказ статьи Brent Ozar. How to Think Like the SQL Server Engine: What’s a Key Lookup?


В паре наших последних статей мы использовали простой запрос для нахождения ИД тех, кто входил в систему с середины 2014 года: Продолжить чтение "Как думать подобно SQL Server: что означает поиск ключа?"