Пересказ статьи Brent Ozar. Which Should You Use VARCHAR or NVARCHAR?
Вы строите новую таблицу или добавляете столбец, и вы хотите знать, какой тип данных использовать: VARCHAR или NVARCHAR?
Если вам необходимо хранить данные Unicode, выбор сделан за вас: NVARCHAR говорит, что
это буду я.
Но если вы не уверены, то можете подумать: "Я должен использовать VARCHAR, поскольку он занимает вдвое меньше места". Я это знаю, потому что чувствовал то же самое, но множество комментаторов указали мне на это, когда я опубликовал ответ в «Office Hours» о том, что по умолчанию я использую VARCHAR. Один за другим разработчики говорили мне, что я неправ и что в 2025 пришло время вместо этого по умолчанию использовать NVARCHAR. Давайте проведем эксперимент!
Чтобы выяснить это, давайте возьмем большую базу данных
Stack Overflow и создадим две копии таблицы Users. Я использую здесь таблицу Users, чтобы сделать демонстрацию краткой и понятной, поскольку у меня нет возможности целый день загружать гигабайты данных (и перезагружаться, как вы сейчас увидите). Мы просто собираемся сфокусироваться на строковых столбцах, поэтому я создал одну с типами VARCHAR, а другую - с NVARCHAR. Затем для простоты мы загрузим только те данные, которые являются чисто VARCHAR (потому что некоторые чудаки могли добавить какие-нибудь необычные данные Unicode в столбец AboutMe).
Continue reading "Что использовать: VARCHAR или NVARCHAR?"
Пересказ статьи Sergey Gigoyan. SQL Index Rebuild vs Reorganize Comparison
При модификации данных в базе данных SQL соответствующие индексы тоже изменяются. Эти изменения приводят к фрагментации индексов. Фрагментация означает, что логический порядок данных на страницах индекса не соответствует физическому порядку. Во фрагментированных индексах информация не располагается логически, что делает операции извлечения данных из индекса более затратными по времени, это приводит к проблемам производительности запросов. Таким образом, фрагментацию индексов следует периодически устранять для поддержания высокой производительности. Операции перестройки и реорганизации индекса как раз направлены на дефрагментацию индексов.
В данной статье мы рассмотрим то, что является общим и различным в этих операциях. Прежде чем начать, мы объясним некоторые важные связанные с ними понятия. В частности, ту информацию, которая стоит за коэффициентом заполнения и статистикой, т.к. эти понятия упоминаются при обсуждении операций по перестроению и реорганизации индекса.
Continue reading "Сравнение перестройки и реорганизации индексов SQL"
Пересказ статьи Lorenzo Uriel. Bind Parameters Make Your SQL Queries Faster
Конечно, вы уже использовали параметры привязки, но слышали ли вы такой совет для оптимизации?
Что-то типа:
"Использование параметров привязки (параметризованных запросов) вместо конкатенации строки SQL улучшит производительность SQL"?
Почему это так вы поймете из этой статьи.
Continue reading "Параметры привязки ускоряют выполнение SQL-запросов"