Тип данных decimal обычно сохраняется на диске в виде данных фиксированной длины. Начиная с SQL Server 2005 SP2, этот тип данных может сохраняться как столбец с переменной длиной при использовании нового формата хранения, называемого vardecimal. С помощью vardecimal вы можете значительно сократить объем внешней памяти для столбца decimal, в котором данные могут сильно отличаться по их размеру.
Формат хранения vardecimal является полезным, когда вам нужно задать максимально возможное значение для поля, в котором обычно хранятся гораздо меньшие значения. Табл. 4.4 показывает это.
Чтобы сделать доступным для использования формат хранения vardecimal, вы вначале должны сделать его доступным для базы данных, а после этого - доступным для конкретной таблицы этой базы данных. Для первого шага используется системная процедура sp_db_vardeciraal_storage_format, как показано в примере 4.6.
опция vardecimal storage format системной процедуры sp_table_option
применяется для задания этого формата хранения для указанной таблицы. В примере 4.7 устанавливается формат хранения vardecimal для таблицы project.
Как вы теперь уже знаете, основной смысл использования формата хранения vardecimal заключается в уменьшении объема хранимых данных. Если вы хотите узнать, сколько памяти будет сэкономлено при использовании этого формата хранения, примените динамически управляемое представление, называемое sys . sp_estimated_rowsize_reduction_for_vardecimal. Оно даст вам детальную оценку состояния конкретной таблицы.