§ Kursist добавил проверочные данные для задачи 22 (SELECT, рейтинг) в ответ на замечание yaroslavv.
Продолжить чтение "Новости за 2020-08-08 - 2020-08-14"
Пересказ статьи Brent Ozar. What If You Really DO Need to Shrink a Database?
Вы уже слышали, что сжатие базы данных - это плохо, поскольку связано с появлением как внешней, так и внутренней фрагментации, вызывает блокировки, рост журнала транзакций при запуске, а также является медленным и однопоточным. Вы понимаете, что если речь идет всего лишь о 10-20-30% базы данных, а база данных составляет всего 100-200 ГБ, то вы можете спокойно оставить это место, потому что все равно будете его использовать.
Продолжить чтение "Что если вам действительно необходимо сжать базу данных?"
Пересказ статьи Bert Wagner. Data Type Precedence and Implicit Conversions
SQL Server должен убедиться, что типы данных совпадают при выполнении операций, которые включают разные данные.
Когда типы данных не совпадают, SQL Server должен неявно преобразовать данные, прежде чем выполнить любую операцию.
Хотя зачастую эти неявные преобразования незаметны, они важны для понимания, т.к. могут привести к неожиданным результатам.
Продолжить чтение "Старшинство типов данных и неявное преобразование"
Пересказ статьи 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 по многим разумным причинам, особенно, когда не имеем индекса, поддерживающего упорядочение.
Продолжить чтение "Столбцы с одинаковым упорядочиванием"
Пересказ статьи Kenneth Fisher. What is the datatype SQL VARIANT
Тип данных SQL_VARIANT - интересный зверь. Это тип данных, который может хранить большинство типов данных. Т.е. date, decimal, int, varchar и т.п. могут сохраняться в единственном типе данных. Звучит здорово, не так ли? Ну, тут есть несколько проблем.
Продолжить чтение "Что это за тип данных SQL_VARIANT?"
§ Перестановки задач:
235 -> 112 -> 55 -> 8 -> обучающий этап (153)
Продолжить чтение "Новости за 2020-07-18 - 2020-07-24"
Пересказ статьи Greg Robidoux. Building SQL Server Indexes in Ascending vs Descending Order
Проблема
При построении индексов часто используется вариант по умолчанию, а именно, индекс строится в возрастающем порядке. Это обычно является наиболее подходящим вариантом создания индекса, поскольку наиболее старые данные или наименьшие значения оказываются наверху, а новые или наибольшие внизу. Хотя поиск по индексу работает прекрасно на таких индексах, но думали ли вы о необходимости всегда получать сначала наиболее свежие данные и о том, что вы можете создать индекс в убывающем порядке, при котором наиболее свежие данные всегда находятся наверху индекса?
Продолжить чтение "Построение индексов SQL Server в возрастающем и убывающем порядке"
Пересказ статьи Manoj Debnath. Working with SQL Cursors
В языке SQL курсоры служат указателями, которые позволяют языку написания приложений обрабатывать результаты запросов построчно. В данной статье вкратце объясняется концепция и показывается, как объявить курсор, открыть, извлечь из него данные, а затем закрыть.
Продолжить чтение "Работа с курсорами SQL"
Пересказ статьи Brent Ozar. Cool Query Hints
Документация SQL Server содержит довольно крутой список хинтов запросов:
Но что там за цветной ящик? Смотрим.
Продолжить чтение "Крутые хинты запросов"
В ранних версиях SQL Server (до 2017) при удалении несуществующей таблицы (
DROP TABLE t1;) вы получали сообщение об ошибке:
Не удалось удалить таблицу "t1", так как она не существует или отсутствуют разрешения."
Продолжить чтение "Удалить таблицу, если она существует"