Published on

June 28, 2008

Понимание SPARSE столбцов в SQL Server

SQL Server 2008 внес несколько новых функций, которые улучшили управление данными и процессы резервного копирования. В предыдущей статье я рассказал о преимуществах Data Stage и управления резервными копиями в SQL Server 2008, и получил положительные отзывы от многих пользователей, которые запросили больше информации по этой теме. Сегодня мы рассмотрим еще одну интересную концепцию в SQL Server, называемую SPARSE столбцами.

SPARSE столбцы – это мощная функция в SQL Server, которая предлагает эффективное управление значениями NULL и ZERO. В отличие от обычных столбцов, SPARSE столбцы не занимают место в базе данных, когда они содержат значения NULL или ZERO. Это делает их отличным выбором для оптимизации хранения в SQL Server.

Одно из ключевых преимуществ SPARSE столбцов заключается в том, что они не учитываются при максимальном ограничении в 1024 столбца на таблицу в SQL Server 2008. Это означает, что вы можете иметь до 100 000 SPARSE столбцов в таблице, в дополнение к обычным столбцам. Эта гибкость позволяет более эффективно организовывать и хранить данные.

Давайте рассмотрим пример, чтобы понять, как SPARSE столбцы могут экономить место в таблице базы данных:

CREATE TABLE UnSparsed (
    ID INT IDENTITY (1, 1),
    FirstCol INT,
    SecondCol VARCHAR(100),
    ThirdCol SmallDateTime
)

CREATE TABLE Sparsed (
    ID INT IDENTITY (1, 1),
    FirstCol INT SPARSE,
    SecondCol VARCHAR(100) SPARSE,
    ThirdCol SmallDateTime SPARSE
)

DECLARE @idx INT = 0

WHILE @idx < 50000
BEGIN
    INSERT INTO UnSparsed VALUES (NULL, NULL, NULL)
    INSERT INTO Sparsed VALUES (NULL, NULL, NULL)
    SET @idx += 1
END

EXEC sp_spaceused 'UnSparsed'
EXEC sp_spaceused 'Sparsed'

DROP TABLE UnSparsed
DROP TABLE Sparsed

В приведенном выше примере мы создаем две таблицы: “UnSparsed” и “Sparsed”. Таблица “UnSparsed” содержит обычные столбцы, а таблица “Sparsed” содержит SPARSE столбцы. Затем мы вставляем 50 000 строк со значениями NULL в обе таблицы. Наконец, мы используем системную хранимую процедуру “sp_spaceused” для сравнения использования пространства двух таблиц.

При выполнении процедуры “sp_spaceused” мы видим, что таблица “UnSparsed” потребляет больше места по сравнению с таблицей “Sparsed”. Это связано с тем, что SPARSE столбцы в таблице “Sparsed” не занимают место, когда они содержат значения NULL.

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

В заключение, SPARSE столбцы – это ценная функция в SQL Server, которая может значительно сократить требования к хранению для значений NULL и ZERO. Используя SPARSE столбцы, вы можете оптимизировать хранение вашей базы данных и улучшить общую производительность. Надеюсь, что эта статья помогла вам лучше понять SPARSE столбцы в SQL Server.

Спасибо за чтение!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.