Skip to content

Тривиальные планы выполнения в SQL Server

Пересказ статьи Esat Erkec. SQL Server Trivial Execution Plans


Введение


SQL является непроцедурным языком программирования; это подразумевает, что пользователи базы данных пишут в коде только то, что они хотят сделать, но не описывают шаги процесса как это сделать. После получения запроса внутренние компоненты ядра реляционной базы данных делают синтаксический разбор и компилируют запрос, а затем выполняют поставленную задачу. По окончанию этих задач они предоставляют результат полученного запроса.
Continue reading "Тривиальные планы выполнения в SQL Server"

Разница между суррогатным и естественным ключом, и их использование в SQL Server

Пересказ статьи Ben Snaidero. Surrogate Key vs Natural Key Differences and When to Use in SQL Server


Если опросить нескольких профессионалов в базах данных SQL Server, задав им вопрос: "Что лучше при определении первичного ключа - суррогатный ключ или столбец (столбцы) естественного ключа?", я предположу, что ответ будет близок к 50/50. Единственный определенный ответ, который вы получите по этому вопросу и с которым согласится большинство, будет тот, что при работе с хранилищами данных вы должны использовать суррогатные ключи для таблиц измерений и фактов. Это связано с тем, что реляционная база данных OLTP источника может измениться в любой момент из-за бизнес-требований, и ваше хранилище данных должно быть способно обработать эти изменения без необходимости обновления. Здесь мы рассмотрим некоторые соображения за и против каждого типа первичного ключа, чтобы вы могли принять лучшее решение для применения в ваших проектах. Continue reading "Разница между суррогатным и естественным ключом, и их использование в SQL Server"

Ограничения страницы данных

Пересказ статьи Klaus Aschenbrenner. Data Page Restrictions


Сегодня поговорим об ограничениях, которые связаны со страницами данных, и почему есть ограничения, которые вам понравятся, хотя другие вы будете ненавидеть. Как вы знаете, страница данных всегда имеет размер 8 Кб, и вы можете сохранить на ней 8060 байтов данных. И размер ваших записей определяет, как много вы их можете сохранить на одной странице. Когда вы имеете дело с типами данных фиксированной длины (например, CHAR, INT, DATETIME и др.), имеется ограничение, что длина записи не может превосходить 8060 байтов, включая внутренние накладные расходы, которые использует SQL Server.

Continue reading "Ограничения страницы данных"

Типы данных varchar в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. Varchar Data Types in SQL Server, Oracle and PostgreSQL


Здесь мы рассмотрим как сохранить максимальное число символов в столбце переменной длины и различия между тремя системами баз данных. В частности, будут рассмотрены различные процедуры, используемые для хранения больших строк в столбце с целью обработки большого текста или структурированных данных типа JSON (будет отдельная статья). Continue reading "Типы данных varchar в SQL Server, Oracle и PostgreSQL"

Когда использовать CHAR, VARCHAR или VARCHAR(MAX)

Пересказ статьи Greg Larsen. When to use CHAR, VARCHAR, or VARCHAR(MAX)


В каждой базе данных имеются различные виды данных, которые нужно хранить. Некоторые данные строго числовые, в то время как другие данные состоят только из букв или комбинации букв, чисел и даже специальных символов. Даже при простом хранении данных в памяти или на диске требуется, чтобы каждая часть данных имела тип. Выбор правильного типа зависит от характеристик сохраняемых данных. В этой статье объясняется разница между CHAR, VARCHAR и VARCHAR(MAX). Continue reading "Когда использовать CHAR, VARCHAR или VARCHAR(MAX)"

Как заменить столбец identity порядковым номером

Пересказ статьи Greg Larsen. How to replace an identity column with a sequence number


Microsoft ввел объекты порядковых номеров, начиная с SQL Server 2012. Объект последовательности генерирует порядковые номера на базе начального значения и приращения, подобно столбцу identity, но имеющему дополнительные возможности. Спустя какое-то время вы, возможно, обнаружите, что дополнительные преимущества порядковых номеров приведут вас к желанию заменить столбец identity на порядковый номер. В этой статье рассматривается два способа замены столбца identity порядковым номером (числом последовательности).
Continue reading "Как заменить столбец identity порядковым номером"

Пропуски в столбце SQL Identity и пересчет в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. SQL Identity Column Gaps and Conversion in SQL Server, Oracle and PostgreSQL


В первой части этой серии статей мы узнали, что представляет собой столбец identity, а также различные способы его установки и модификации в SQL Server, Oracle и PostgreSQL. Теперь мы глубже заглянем в столбцы identity и рассмотрим такие вопросы, как кэширование значений identity и как преобразовать существующий столбец (содержащий данные) в столбец identity. Continue reading "Пропуски в столбце SQL Identity и пересчет в SQL Server, Oracle и PostgreSQL"

JSON в SQL Server - часть 2

Пересказ статьи Josip Saban. SQL Server JSON – Part 2


В предыдущей статье были даны основы JSON и показано на ряде примеров, как использовать JSON в SQL Server. Во второй части мы рассмотрим более продвинутые случаи использования JSON, начиная со специфики обработки JSON в SQL Server 2017 и более поздних версиях, продолжая с валидации данных JSON, модификации данных JSON и заканчивая примерами лучшего использования. Continue reading "JSON в SQL Server - часть 2"

Проверьте производительность и безопасность резервного копирования SQL Server с помощью sp_BlitzBackups

Пересказ статьи Brent Ozar. Check Your SQL Server Backup Performance & Safety with sp_BlitzBackups


Среди всех наших скриптов в бесплатном комплекте быстрого реагирования First Responder Kit sp_BlitzBackups является, вероятно, одним из тех, который вы уже использовали. Давайте поговорим о том, какую пользу из него можно извлечь, и почему вы должны использовать его чаще.
Continue reading "Проверьте производительность и безопасность резервного копирования SQL Server с помощью sp_BlitzBackups"

Конфигурирование связанного сервера между SQL Server и PostgreSQL при использовании ODBC-драйверов

Пересказ статьи Nisarg Upadhyay. Configure a Linked Server between SQL Server and PostgreSQL using ODBC drivers


В этой статье рассматривается конфигурирование связанного сервера между SQL Server 2019 и PostgreSQL. Моя предыдущая статья под названием Configure ODBC drivers for PostgreSQL являлась введением в драйвер ODBC для PostgreSQL. Мы рассмотрели как загрузить, установить и сконфигурировать драйвер. Теперь мы узнаем как использовать драйвер ODBC для доступа к данным в PostgreSQL из SQL Server 2019.
Continue reading "Конфигурирование связанного сервера между SQL Server и PostgreSQL при использовании ODBC-драйверов"

Связанные серверы к файлам Excel .xlsx

Пересказ статьи Will Assaf. SQL Server linked server to .xlsx Excel files


Такой вопрос: возможно ли еще подключиться к файлам Excel .xlsx как к связанным серверам SQL Server?
Короткий ответ: Да, это возможно уже в SQL 2019 с использованием провайдера ACE.OLEDB.12.0.

Continue reading "Связанные серверы к файлам Excel .xlsx"

Мои любимые улучшения T-SQL в SQL Server 2022

Пересказ статьи Aaron Bertrand. My Favorite T-SQL Enhancements in SQL Server 2022


Каждый релиз SQL Server содержит новые возможности, которые возбуждают некоторые группы пользователей - иногда изменения вводятся, чтобы порадовать администраторов системы, иногда - финансистов, иногда - клиентов других платформ, а иногда - разработчиков. Теперь, когда стала доступной первая предварительная версия SQL Server 2022, я хочу поделиться некоторыми из моих любимых новых возможностей, которые порадуют каждого, кто пишет на T-SQL, оставив некоторые другие новинки для другой статьи.
Continue reading "Мои любимые улучшения T-SQL в SQL Server 2022"

Примеры резервного копирования базы данных SQL Server

Пересказ статьи Joe Gavin. SQL Server Database Backup Examples


Если вы новичок в SQL Server и хотите узнать, как создать бэкап базы данных SQL Server, а также о том, какие различные типы резервных копий существуют, то эта статья для вас. Здесь обсуждается создание резервных копий с помощью GUI и скриптов T-SQL. Continue reading "Примеры резервного копирования базы данных SQL Server"

Правильный способ проверки на NULL в запросах SQL Server

Пересказ статьи Erik Darling. The Right Way To Check For NULLs In SQL Server Queries


Это все еще одна из наиболее общих проблем, которую я вижу в запросах.
Люди боятся NULL. Люди боятся сливаться на автострадах в Лос-Анджелесе.
В результате имеем бесконечный поток запросов с плохой производительностью, и некоторые неожиданные ошибки, обнаруживаемые по пути.
Continue reading "Правильный способ проверки на NULL в запросах SQL Server"

Советы по производительности оператора SQL TOP

Пересказ статьи Esat Erkec. SQL TOP statement performance tips


В этой статье мы будем использовать учебную базу данных Adventureworks2019. Мы также будем использовать скрипт Create Enlarged AdventureWorks Tables для получения увеличенной версии этой базы данных.

Что такое оператор SQL TOP


Оператор TOP используется для ограничения числа строк, которые извлекаются или обновляются в одной или нескольких таблицах. Это ограничение на число строк можно задать как фиксированным значением, так и процентом строк в таблице. Например, следующий запрос вернет первые 10 случайных строк из таблицы Production.
Continue reading "Советы по производительности оператора SQL TOP"