Улучшенные способы программирования (компонент Database Engine)
К улучшенным способам программирования в компоненте 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, Устаревшие функции полнотекстового поиска в SQL Server 2008, Критические изменения полнотекстового поиска в SQL Server 2008 и Архитектура компонента 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).