Пересказ статьи Jared Westover. Add Indexes to Improve SQL DELETE Performance
Вы добавляете индексы, чтобы ускорить запросы, но как насчет удаления данных? Говорили вам, что индексы замедляют удаление? Это объясняется тем, что чем больше копий данных разбросаны по индексам, тем больше данных должен удалить SQL Server при чистке. Но подтверждается ли это утверждение результатами тестов?
В этой статье мы исследуем важность индексов в улучшении операторов DELETE. Кроме того, многие разработчики полагают, что добавление внешнего ключа создает индекс, а это значит, что они обычно отсутствуют. Как можно определить, какие внешние ключи пропускают индексы? Не беспокойтесь, полезная DMV поможет обнаружить их. Начиная с сегодняшнего дня вы приобретете навыки ускорять ваши операторы DELETE.
Continue reading "Добавьте индексы, чтобы улучшить производительность SQL DELETE"
Пересказ статьи Grant Fritchey. Can AI Read Execution Plans?
Да, да, вторая статья об ИИ подряд. Я обещаю, что это не станет привычкой. Но я видел, что кто-то еще упомянул, что вы можете подать XML, и ИИ прочитает план выполнения. Я должен был протестировать это, а затем поделиться результатами с вами.
Continue reading "Может ли ИИ читать планы выполнения?"
Пересказ статьи Lorenzo Uriel. The SQL Week: Bitmasking & Bitwise
Поразрядное маскирование (Bitmasking) и побитовые (Bitwise) операции являются понятиями, используемыми главным образом в программировании для манипуляции и представления данных и объектов на уровне битов, позволяя эффективно их обрабатывать.
Поразрядным маскированием называется процесс использования битовой маски для манипуляции или проверки значения конкретных битов в двоичном числе.
Это делается с помощью побитовых операторов, таких как AND (&), OR (|), XOR (^), NOT (~) и других. Битовые маски используются для определения того, какие биты числа будут модифицироваться, тестироваться или включаться.
Continue reading "Неделя SQL: поразрядное маскирование и побитовые операции"
Пересказ статьи Grant Fritchey. Exploring Window Functions Execution Plans
Есть совсем немного разных способов, с помощью которых вы, вероятно, могли увидеть, как оконные функции проявляют себя в плане выполнения. Давайте рассмотрим один пример.
Оконные функции
Для нашего примера я возьму довольно простой запрос:
SELECT soh.CustomerID,
soh.SubTotal,
ROW_NUMBER() OVER (PARTITION BY soh.CustomerID ORDER BY soh.OrderDate ASC) AS RowNum,
Soh.OrderDate
FROM Sales.SalesOrderHeader AS soh
WHERE soh.OrderDate
BETWEEN '1/1/2013' AND '7/1/2013'
ORDER BY RowNum DESC, soh.OrderDate;
Ничего необычного. Какой план будет сгенерирован? Вот план с метриками времени выполнения (т.е. действительный план):
Continue reading "Изучение планов выполнения оконных функций"
Пересказ статьи Nisarg Upadhyay. How to Rename a Column in SQL Server
Недавно я работал над проектом по анализу схемы стороннего поставщика. В нашей организации имелся инструмент управления внутренними тикетами поддержки. Этот инструмент использовал базу данных SQL, и после оценки стоимости инструмента мы решили не возобновлять контракт. Планировалось создать собственный инструмент для управления внутренними тикетами поддержки.
Я должен был сделать обзор схемы базы данных внутренней поддержки. Структура была очень сложной, а имена таблиц таковы, что нам затруднительно было понять, какие данные в каких таблицах хранятся. В конце концов я смог определить связи между таблицами и какие данные там находились. Я также позаботился о том, чтобы дать подходящие имена столбцам, чтобы мы могли легко находить требуемые данные. Я использовал процедуру sp_rename для переименования таблиц.
Эта статья посвящена основам переименования столбцов с помощью хранимой процедуры sp_rename. Также я объясняю, как переименовать столбец, используя SQL Server Management Studio. Сначала давайте разберемся с основами переименования столбца.
Continue reading "Как переименовать столбец в SQL Server"