Кластеры таблиц в SQLServer - PullRequest
2 голосов
/ 29 мая 2010

В Oracle кластер таблиц - это группа таблиц, которые имеют общие столбцы и хранят связанные данные в одних и тех же блоках. Когда таблицы кластеризованы, один блок данных может содержать строки из нескольких таблиц. Например, блок может хранить строки из таблиц сотрудников и отделов, а не только из одной таблицы:

http://download.oracle.com/docs/cd/E11882_01/server.112/e10713/tablecls.htm#i25478

Можно ли это сделать в SQLServer?

Ответы [ 2 ]

1 голос
/ 29 мая 2010

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

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

Как правило, оптимизация JOINS включает стратегии индексов (по моему опыту, предпочтительно с охватом некластеризованных индексов)

1 голос
/ 29 мая 2010

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

С другой стороны, это похоже на то, как ядро ​​базы данных хранит данные на жестком диске. В SQL это делается через 8 КБ страниц. Предполагая два совершенно отдельных определения table , невозможно сохранить данные из двух таких отдельных таблиц на одной странице. (Если блок Oracle более похож на файлы ОС, то это превращается в файлы SQL и группы файлов, и в этот момент ответом является «да» ... но я подозреваю, что это не то, для чего предназначены блоки.) *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...