Улучшенные способы программирования (компонент Database Engine)

ПримечаниеПримечание

Для SQL Server 2008 R2 не было изменений содержимого, перечисленных в этом разделе.

К улучшенным способам программирования в компоненте Database Engine относятся новые функции хранения данных, новые типы данных, новая архитектура полнотекстового поиска, а также многочисленные усовершенствования и добавления в языке Transact-SQL.

Хранение данных

Хранение таблиц и индексов в сжатом виде

SQL Server 2008 поддерживает хранение на диске в сжатом виде для таблиц, индексов и индексированных представлений, как в строковом, так и в страничном формате. Сжатие секционированных таблиц и индексов можно настроить независимо для каждой секции. Дополнительные сведения см. в разделе Создание сжатых таблиц и индексов.

Хранилище FILESTREAM

Хранилище FILESTREAM в SQL Server позволяет приложениям хранить в файловой системе неструктурированные данные, такие как документы и изображения. Это позволяет клиентским приложениям использовать широкие возможности API-интерфейсов потоковой работы с данными и полнее задействовать ресурсы производительности операционной системы, сохраняя согласованность транзакций между неструктурированными данными и соответствующими структурированными данными. Дополнительные сведения см. в разделе Проектирование и реализация хранилища FILESTREAM.

Новые параметры сортировки

В SQL Server 2008 были добавлены новые параметры сортировки, полностью согласованные с параметрами, предоставляемыми Windows Server 2008. Эти 80 новых параметров сортировки отмечены пометками версии *_100. Они предоставляют пользователям наиболее актуальные и лингвистически точные национальные стандарты сортировки. Дополнительные сведения см. в образце кода Поддержка параметров сортировки и Юникода и разделе Работа с параметрами сортировки.

Переключение секций в секционированных таблицах и индексах

Секционирование данных позволяет эффективно и быстро управлять подмножествами данных и получать доступ к ним, сохраняя при этом целостность всего набора данных. Теперь можно применять переключение секций, чтобы быстро и эффективно передавать подмножества данных, переключая секцию из одной таблицы в другую.

Сведения об основных понятиях переключения секций и образцы кода, выполняющего переключение секций, см. в разделах Эффективная передача данных с использованием переключения секций и Переключение секций при наличии индексированных представлений.

Разреженные столбцы и наборы столбцов

Разреженные столбцы — это обычные столбцы, имеющие оптимизированный формат хранения для значений NULL. Разреженные столбцы следует использовать в том случае, если по крайней мере от 20 до 40 процентов от всех значений столбца составляют значения NULL. Дополнительные сведения см. в разделе Использование разреженных столбцов.

В таблицах, использующих разреженные столбцы, можно назначить набор столбцов, который будет возвращать все разреженные столбцы в таблице. Набор столбцов — это нетипизированное XML-представление, которое объединяет на выходе все разреженные столбцы таблицы в структурированном виде. Дополнительные сведения см. в разделе Использование наборов столбцов.

Хранение, индексирование и другие методы работы с пространственными данными

Пространственные данные представляют сведения о физическом расположении и форме геометрических объектов. Такими объектами могут быть точки или более сложные объекты, например страны, дороги, озера.

Дополнительные сведения см. в разделах Работа с пространственными данными (компонент Database Engine), Справочник по методам типа данных geometry и Справочник по методам типа данных geography.

Пространственные индексы повышают производительность отдельных операций на основе наборов, применяемых к пространственным объектам (пространственным данным). Пространственные индексы снижают количество объектов, к которым должны применяться пространственные операции, требующие больших затрат. Дополнительные сведения см. в разделе Работа с пространственными индексами (компонент Database Engine).

Широкие таблицы

Широкие таблицы содержат один или несколько наборов столбцов. Широкая таблица может содержать до 30 000 столбцов, 1 000 индексов и 30 000 комплектов статистических данных. Дополнительные сведения см. в разделе Типы специальных таблиц.

Типы данных

Типы данных даты и времени

В SQL Server 2008 добавлены четыре новых типа данных даты и времени. Эти типы данных позволяют применять в приложениях отдельные типы для даты и времени, использовать расширенный диапазон лет, повышенную точность долей секунд и поддержку часовых поясов. Дополнительные сведения см. в разделе Использование данных даты и времени.

Тип данных hierarchyid

В SQL Server 2008 добавлен новый системный тип данных, позволяющий инкапсулировать иерархические связи. Тип данных hierarchyid используется для создания таблиц с иерархической структурой или для ссылки на данные с иерархической структурой в другом расположении. Язык Transact-SQL предоставляет иерархические методы для запроса иерархических данных и работы с ними.

Примеры структур, когда тип hierarchyid упрощает хранение и запрос иерархических данных:

  • организационная структура;

  • файловая система;

  • группа задач в проекте;

  • классификация языковых терминов;

  • граф связей между веб-страницами.

Для клиентских приложений доступен связанный тип данных CLR — SqlHierarchyId. Дополнительные сведения см. в разделе Использование типов данных hierarchyid (компонент Database Engine).

Пространственные типы данных

В SQL Server 2008 добавлена поддержка двух пространственных типов данных: geometry и geography. Тип данных geometry используется для планарных или евклидовых данных (система координат для плоской Земли). В типе данных geography хранятся эллиптические данные (система координат для сферической Земли), такие как координаты широты и долготы GPS. Эти новые типы данных поддерживают хранение объектов пространственных данных, таких как LineString, Point и Polygon, а также различные операции с ними. Дополнительные сведения см. в разделе Работа с пространственными данными (компонент Database Engine).

Определяемый пользователем табличный тип

В компонент Database Engine добавлен новый определяемый пользователем табличный тип, который поддерживает представление табличных структур для использования в качестве параметров хранимых процедур и функций либо в пакете или в тексте хранимой процедуры или функции. Для определяемых пользователем табличных типов можно создавать ограничения уникальности и первичные ключи.

Дополнительные сведения см. в разделе Определяемые пользователем типы таблиц.

Определяемые пользователем типы

Максимальный размер определяемого пользователем типа увеличен до 2 147 483 647 байт.

Полнотекстовый поиск

В выпуске SQL Server 2008 Enterprise добавлена новая полнотекстовая архитектура для полнотекстового поиска. Теперь полнотекстовый поиск является полностью интегрированной функцией базы данных. В результате значительно улучшена работа полнотекстового поиска в следующих областях.

  • Полнотекстовые каталоги интегрированы в базу данных, а не хранятся в файловой системе, и поэтому теперь при перемещении базы данных автоматически перемещаются полнотекстовые каталоги.

  • Применявшиеся в SQL Server 2005 пропускаемые слова были заменены стоп-словами. Конфигурация стоп-слов задается новым набором объектов стоп-слов. Эти объекты связаны с базой данных и перемещаются вместе с ней. В результате конфигурация стоп-слов продолжает действовать во время операций управления, таких как резервное копирование и восстановление, отсоединение и присоединение, а также копирование базы данных с помощью мастера копирования баз данных. Дополнительные сведения см. в разделе Стоп-слова и списки стоп-слов.

  • В некоторых специализированных сценариях значительно повысилась производительность обработки запросов и индексирования в результате интеграции с другими важными компонентами запроса, такими как оптимизатор запросов. Дополнительные сведения см. в разделе Настройка и оптимизация производительности полнотекстовых индексов.

  • Новые средства помогают представить необработанное содержимое полнотекстового индекса и принципы работы отдельно взятого средства разбиения по словам в заданном термине или выражении запроса. Дополнительные сведения см. в разделах sys.dm_fts_index_keywords (Transact-SQL), sys.dm_fts_index_keywords_by_document (Transact-SQL) и sys.dm_fts_parser (Transact-SQL). Эти и другие новые динамические административные представления и хранимые процедуры упрощают устранение неполадок с полнотекстовым поиском. Дополнительные сведения об этих ресурсах для устранения неполадок см. в разделе Устранение неполадок компонента Full-Text Search.

  • Новое семейство средств разбиения по словам повышает точность разбиения по словам и расширяет набор языков, для которых доступен полнотекстовый поиск. Дополнительные сведения см. в разделе Средства разбиения по словам и парадигматические модули.

Дополнительные сведения см. в разделах Изменения в поведении полнотекстового поиска в SQL Server 2008 R2, Устаревшие функции полнотекстового поиска в SQL Server 2008 R2, Критические изменения полнотекстового поиска в SQL Server 2008 R2 и Архитектура компонента Full-Text Search.

Transact-SQL

Уровень совместимости

Инструкция ALTER DATABASE SET COMPATIBILITY_LEVEL заменяет хранимую процедуру sp_dbcmptlevel в качестве средства для задания уровня совместимости в базе данных. Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).

Составные операторы

Доступны операторы, выполняющие операцию и присваивающие ее результат некоторой переменной, например SET @x += 2. Дополнительные сведения см. в разделе Составные операторы (Transact-SQL).

Функция CONVERT

Улучшенная функция CONVERT допускает преобразования между двоичными и символьными шестнадцатеричными значениями. Дополнительные сведения см. в разделе Функции CAST и CONVERT (Transact-SQL).

Функции даты и времени

SQL Server 2008 обеспечивает поддержку системы недели и даты ISO. Дополнительные сведения см. в разделе DATEPART (Transact-SQL).

GROUPING SETS

В предложение GROUP BY добавлены операторы GROUPING SETS, ROLLUP и CUBE. Новая функция GROUPING_ID() возвращает больше сведений об уровне группирования, чем существующая функция GROUPING(). Синтаксические конструкции WITH ROLLUP, WITH CUBE и ALL являются устаревшими. Дополнительные сведения см. в разделе Использование предложения GROUP BY с операторами ROLLUP, CUBE и GROUPING SETS.

Инструкция MERGE

Новая инструкция Transact-SQL выполняет операции INSERT, UPDATE и DELETE для целевой таблицы на основании результатов соединения с исходной таблицей. Синтаксис этой инструкции позволяет соединить источник данных с целевой таблицей или представлением, а затем выполнить несколько действий в зависимости от результатов такого соединения. Дополнительные сведения см. в разделе MERGE (Transact-SQL).

Отчет о зависимостях в SQL

В SQL Server 2008 добавлено новое представление каталога и системные функции, обеспечивающие согласованное и надежное составление отчетов о зависимостях в SQL. Представления sys.sql_expression_dependencies, sys.dm_sql_referencing_entities и sys.dm_sql_referenced_entities предназначены для составления отчетов о зависимостях, существующих между серверами, между базами данных и в пределах базы данных для объектов, привязанных к схеме, и объектов без привязки к схеме. Дополнительные сведения см. в разделе Создание отчета о зависимостях SQL.

Возвращающие табличное значение параметры

В компонент Database Engine добавлен новый тип параметров, который может ссылаться на определяемые пользователем табличные типы. Возвращающие табличное значение параметры могут отправлять несколько строк в инструкцию или подпрограмму SQL Server (например, в хранимую процедуру или функцию), не очищая временную таблицу. Дополнительные сведения см. в разделе Возвращающие табличное значение параметры (компонент Database Engine).

Конструкторы строк Transact-SQL

Улучшенный язык Transact-SQL допускает вставку нескольких значений в одной инструкции INSERT. Дополнительные сведения см. в разделе Инструкция INSERT (Transact-SQL).

См. также

Основные понятия