Skip to content

Новости за 2020-05-02- 2020-07-10

§ Этим выпуском возобновляется рассылка еженедельных новостей сайта. Перерыв был связан с переездом, последствия которого еще не до конца устранены. Но основная функциональность сайта восстановлена.
В итоге пользователь сайта получает новые версии СУБД для выполнения запросов (пока за исключением Oracle), безопасный протокол передачи данных и, надеемся, более надежное функционирование.
Просьба сообщать о замеченных недостатках, которые, к сожалению, еще имеют место.
В настоящем выпуске приводится статистика за все время, начиная со времени выхода последнего номера. Continue reading "Новости за 2020-05-02- 2020-07-10"

Модернизация вашего кода T-SQL: объект Sequence

Пересказ статьи Andy Levy. Modernizing Your T-SQL: The Sequence Object



В прошлом году вы наконец-то отправили на пенсию ваш последний экземпляр SQL Server 2008R2. Поздравляю! Но получили ли вы выгоду от всего, что предлагают вам новые экземпляры? До тех пор, пока вы не сделаете обзор кода T-SQL в ваших приложениях, полагаю, что нет.
Continue reading "Модернизация вашего кода T-SQL: объект Sequence"

Почему народ не использует индексы поколоночного хранения?

Пересказ статьи Grant Fritchey. WHY DON’T PEOPLE USE COLUMNSTORE INDEXES?



Если позволите, я хочу поговорить о расширенных событиях (Extended Events), прежде чем перейти к поколоночному хранению.
Continue reading "Почему народ не использует индексы поколоночного хранения?"

Что случится, если отключить кластеризованный индекс?

Пересказ статьи Kenneth Fisher. What happens if I disable the clustered index?



Вы, вероятно, уже знаете, что индекс можно отключить. Это может быть удобно при большой загрузке, а загрузка + включение индексов (вы должны будете полностью перестроить их) быстрей, чем загрузка при включенных индексах. Я знаю мало случаев, когда это помогало, но иногда это может оказаться удобным трюком. Следует сказать, что это справедливо только для некластеризованных индексов. А что случится, если отключить кластеризованный индекс?
Continue reading "Что случится, если отключить кластеризованный индекс?"

Что следует иметь в виду, когда SQL Server просит индекс

Пересказ статьи Brent Ozar. Things to Consider When SQL Server Asks for an Index


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

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

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


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

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

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



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

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

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


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

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

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


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

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

Пересказ статьи Brent Ozar. How to Think Like the SQL Server Engine: Included Columns Aren’t Free.

В последней статье этой серии я говорил, что если мы выполним запрос:
UPDATE dbo.Users
  SET Age = Age + 1
  WHERE Id = 643;
Continue reading "Как думать подобно SQL Server: включенные столбцы не дешевы"