Skip to content

Что если вам действительно необходимо сжать базу данных?

Пересказ статьи Brent Ozar. What If You Really DO Need to Shrink a Database?


Вы уже слышали, что сжатие базы данных - это плохо, поскольку связано с появлением как внешней, так и внутренней фрагментации, вызывает блокировки, рост журнала транзакций при запуске, а также является медленным и однопоточным. Вы понимаете, что если речь идет всего лишь о 10-20-30% базы данных, а база данных составляет всего 100-200 ГБ, то вы можете спокойно оставить это место, потому что все равно будете его использовать.
Продолжить чтение "Что если вам действительно необходимо сжать базу данных?"
Категории: T-SQL

Старшинство типов данных и неявное преобразование

Пересказ статьи Bert Wagner. Data Type Precedence and Implicit Conversions


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


Продолжить чтение "Старшинство типов данных и неявное преобразование"
Категории: T-SQL

Проектирование индекса в базах данных и оптимизация: некоторые рекомендации

Пересказ статьи Basit Farooq. Database index design and optimization: Some guidelines



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

Индексированные представления - панацея производительности или беда

Пересказ статьи Jason Brimhall. Indexed Views – Performance Panacea or Plight



Индексированное представление - это представление, когда результирующий набор запроса (определения представления) материализуется вместо результирующего набора виртуальной таблицы стандартного (неиндексированного) представления. Часто приходится видеть, что индексированное представление создается с целью улучшить производительность. И слишком часто индексированное представление создается без учета накладных расходов. Продолжить чтение "Индексированные представления - панацея производительности или беда"

Столбцы с одинаковым упорядочиванием

Пересказ статьи Erik Darling. Columns That Share Ordering



Это следует иметь в виду, когда вам необходимо использовать сортировку большой таблицы.
Конечно, мы беспокоимся относительно ORDER BY по многим разумным причинам, особенно, когда не имеем индекса, поддерживающего упорядочение.
Продолжить чтение "Столбцы с одинаковым упорядочиванием"

Что это за тип данных SQL_VARIANT?

Пересказ статьи Kenneth Fisher. What is the datatype SQL VARIANT



Тип данных SQL_VARIANT - интересный зверь. Это тип данных, который может хранить большинство типов данных. Т.е. date, decimal, int, varchar и т.п. могут сохраняться в единственном типе данных. Звучит здорово, не так ли? Ну, тут есть несколько проблем. Продолжить чтение "Что это за тип данных SQL_VARIANT?"
Категории: T-SQL

Построение индексов SQL Server в возрастающем и убывающем порядке

Пересказ статьи Greg Robidoux. Building SQL Server Indexes in Ascending vs Descending Order



Проблема


При построении индексов часто используется вариант по умолчанию, а именно, индекс строится в возрастающем порядке. Это обычно является наиболее подходящим вариантом создания индекса, поскольку наиболее старые данные или наименьшие значения оказываются наверху, а новые или наибольшие внизу. Хотя поиск по индексу работает прекрасно на таких индексах, но думали ли вы о необходимости всегда получать сначала наиболее свежие данные и о том, что вы можете создать индекс в убывающем порядке, при котором наиболее свежие данные всегда находятся наверху индекса?
Продолжить чтение "Построение индексов SQL Server в возрастающем и убывающем порядке"

Работа с курсорами SQL

Пересказ статьи Manoj Debnath. Working with SQL Cursors


В языке SQL курсоры служат указателями, которые позволяют языку написания приложений обрабатывать результаты запросов построчно. В данной статье вкратце объясняется концепция и показывается, как объявить курсор, открыть, извлечь из него данные, а затем закрыть. Продолжить чтение "Работа с курсорами SQL"

Удалить таблицу, если она существует

В ранних версиях SQL Server (до 2017) при удалении несуществующей таблицы (DROP TABLE t1;) вы получали сообщение об ошибке:
Не удалось удалить таблицу "t1", так как она не существует или отсутствуют разрешения."
Продолжить чтение "Удалить таблицу, если она существует"
Категории: T-SQL