Partager via


«Домашнее задание» по SQL Server 2008

Завершаем публикацию ответов на вопросы нашего «домашнего задания» с семинара «Переход на Microsoft SQL Server 2008 и обеспечение совместимости приложений».

Доступна ли документация по SQL Server 2008 на русском языке?

Да! С одной стороны, в данный момент идут масштабные работы по переводу на русский язык библиотеки MSDN. Благодаря этим усилиям, уже доступна часть статей на русском языке, в том числе документация по SQL Server 2008. Эта работа еще далеко не закончена, некоторые ссылки пока ведут на страницы на английском, однако новые переводы появляются регулярно.

С другой стороны, и SQL Server 2005 и SQL Server 2008 поставляются в локализованных редакциях на русском языке. Если вы, например, загружаете пробную версию SQL Server 2005 или документацию к нему, то всего лишь нужно выбрать русский язык на странице загрузки.

Изменить язык: Русский

Каково физическое представление нового типа данных hierarchyid?

В SQL Server 2008 реализован новый тип данных hierarchyid, предназначенный для работы с указателями на позиции в древовидной структуре. Несмотря на то, что этот тип данных поставляется в составе SQL Server 2008, он реализован как определяемый пользователем тип (UDT). Поэтому, физическое представление типа hierarchyid не отличается от представления UDT типа, а именно, является двоичным представлением переменной длины.

Одним из преимуществ использования типа hierarchyid является компактность его физического представления. Например, для представления указателя на позицию в древовидной структуре, имеющей 100,000 узлов и, в среднем, 6 потомков на каждом уровне, достаточно 40 бит или 5 байт данных. Реализация типа hierarchyid автоматически выбирает необходимый размер физического представления в зависимости от глубины и ширины древовидной структуры.

Напомним, что в SQL Server 2008 ликвидировано ограничение в 8192 байт на размер представления типов UDT. Теперь размер может достигать 2 ГБ (максимальный размер LOB). Тем не менее, реализация hierarchyid имеет свое собственное ограничение на размер представления — 892 байта, однако весьма необременительное, поскольку двоичное представление весьма экономно по отношению к числу узлов иерархии. (Для среднего числа потомков 6, ограничение на общее количество узлов иерархии — более 10925.)

Следует предостеречь от возможной путаницы с так называемым текстовым «каноническим» представлением вида /1/2/10/25/ . Данное текстовое представление вычисляется .NET методом ToString () типа hierarchyid на основе его внутреннего двоичного представления.

В библиотеке MSDN вы можете найти подробное описание типа «hierarchyid (Transact-SQL)», справочник по его .NET методам «hierarchyid Data Type Method Reference», а также несколько разделов с рекомендациями и обучающими примерами:

Работает ли в SQL Server 2008 технология быстрой загрузки данных через OLE DB?

Да, технология быстрой загрузки строк в таблицы через специальные интерфейсы OLE DB никуда не исчезла и может быть успешно использована в SQL Server 2008. В тех случаях, когда вашему приложению требуется загружать BLOB данные большого объема (более 1—2 МБ), либо если требуется загрузка очень большого количества строк, использование этой технологии предпочтительно с точки зрения повышения производительности и экономии памяти.

Подробное описание находится в следующих разделах библиотеки MSDN:

Кроме того, если вы решите использовать эту технологию, рекомендуем прочитать статью «Sending BLOB Data to SQL SERVER Using IRowsetFastLoad and ISequentialStream» из блога команды Microsoft SQL Server Native Client Team.

Реализована ли функциональность row- level security в SQL Server 2008?

Встроенных в ядро SQL Server механизмов контроля доступа на уровне строк данных (row-level security) нет. Однако данная функциональность может быть реализована прикладными средствами, очень подробное описание можно найти в статье «Implementing Row- and Cell-Level Security in Classified Databases Using SQL Server 2005».

Также для изучения данного вопроса может быть полезна небольшая статья в библиотеке MSDN — «Granting Row-Level Permissions in SQL Server (ADO.NET)».

ГБ