Skip to content

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

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


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

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

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


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

Продолжить чтение "Ограничения страницы данных"
Категории: T-SQL

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

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


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

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

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


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

Столбцы, включенные в уникальный некластеризованный индекс, не являются частью ограничения UNIQUE

Пересказ статьи Greg Dodd. Included Columns on Unique Non-Clustered Indexes are not part of the Unique Constraint


Сегодня мне потребовалось добавить в таблицу ограничение уникальности (UNIQUE). Мы могли бы просто добавить ограничение, но данные, для которых я хочу добавить ограничение, уже были проиндексированы. Могу я просто сделать уникальный индекс, и покончить с этим? Давайте выясним это при помощи следующей таблицы: Продолжить чтение "Столбцы, включенные в уникальный некластеризованный индекс, не являются частью ограничения UNIQUE"

Преобразования оптимизатора Oracle

Пересказ статьи Jonathan Lewis. Transformations by the Oracle Optimizer


Общеизвестно, что когда вы пишете оператор SQL, вы сообщаете базе данных что вы хотите, но не как это получить. Тогда неудивительно, что за исключением простейших случаев оператор, который оптимизирует Oracle, не обязательно является тем, который вы писали. Другими словами, Oracle будет, вероятно, преобразовывать ваш оператор в логически эквивалентный оператор, прежде чем применять арифметику, которую он использует для выбора плана выполнения. Продолжить чтение "Преобразования оптимизатора Oracle"

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

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


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

Пропуски в столбце 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. Продолжить чтение "Пропуски в столбце 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 и заканчивая примерами лучшего использования. Продолжить чтение "JSON в SQL Server - часть 2"
Категории: T-SQL

Новости за 2022-06-25 - 2022-07-01

§ Выполнены следующие замены задач обучающего этапа:

121 <-> 151

123 <-> 152

125 <-> 153

132 <-> 155

133 <-> 156

138 <-> 160

139 <-> 161


Задачи с номерами > 150 будут теперь доступны только участникам рейтинга обучающего этапа

Продолжить чтение "Новости за 2022-06-25 - 2022-07-01"