Skip to content

Вероятно, вам не стоит индексировать временные таблицы

Пересказ статьи Brent Ozar. You Probably Shouldn’t Index Your Temp Tables


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

Понимание CRUD-операций на таблицах с индексами B-Tree, разбиение страниц и фрагментация

Пересказ статьи Mohsin Khan. Understanding CRUD Operations on Tables with B-tree Indexes, Page-splits, and Fragmentation


Введение


Каждая транзакция DML читает данные, прежде чем сделать какие-либо изменения. Не только при операторе SELECT, но и когда выполняется любой оператор DML, вставка, обновление или удаление, SQL Server сначала считывает набор страниц в буферный пул, размещая желаемые строки и изменяя их, выполняя синхронную запись в файл журнала транзакций.
Продолжить чтение "Понимание CRUD-операций на таблицах с индексами B-Tree, разбиение страниц и фрагментация"

Понимание CRUD операций, адресованных к куче, и указатели пересылки

Пересказ статьи Mohsin Khan. Understanding CRUD Operations Against Heaps and Forwarding Pointers



Введение


Транзакции языка манипуляции данными (DML) являются ключевыми для любой рабочей нагрузки, которая выполняется на SQL Server. Твердые знания того, что происходит под капотом, когда вы выполняете оператор DML, имеют решающее значение для написания более производительного кода. В этой статье мы посмотрим изнутри на три основных оператора DML, выполняемых на куче: вставка, обновление и удаление. Мы начнем с понимания того, что происходит внутри, когда каждый из этих трех операторов DML выполняется на куче. Затем мы разберемся с тем, что представляют собой указатели пересылки (forwarding pointers), и что вызывает их появление. Прочитав статью, вы должны понимать, почему SQL Server ведет себя так, а не иначе, при определенных шаблонах рабочей нагрузки DML на кучах, что вызывает появление указателей пересылки в кучах, и как управлять ими.


Продолжить чтение "Понимание CRUD операций, адресованных к куче, и указатели пересылки"

Почему вам следует прекратить смотреть на стоимость запроса

Пересказ статьи Erik Darling. Why You Should Stop Looking At Query Cost


Не жалейте расходов


За годы я получил множество запросов на получение sp_BlitzCache, чтобы отсортировать результаты по стоимости запроса. Я понимаю почему. Предполагается, что оптимизатор никогда не ошибается, и что стоимость непосредственно связана с плохой производительностью.
Продолжить чтение "Почему вам следует прекратить смотреть на стоимость запроса"

9 признаков того, что ваш T-SQL может не пройти проверку кода

Пересказ статьи Brent Ozar. 9 Signs Your T-SQL Might Fail a Code Review


Трудно установить абсолютные правила типа: "Фичу X нельзя использовать ни в коем случае."

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