Типы специальных таблиц
Кроме стандартной роли обычных определяемых пользователем таблиц SQL Server предоставляет в базах данных следующие типы таблиц специального назначения:
Секционированные таблицы
Временные таблицы
Системные таблицы
Широкие таблицы
Секционированные таблицы
Секционированные таблицы — это таблицы, данные которых горизонтально разделены на блоки, которые могут быть распределены между несколькими файловыми группами в базе данных. Секционирование делает большие таблицы и индексы более управляемыми, позволяет быстро и эффективно получать доступ к наборам данных и управлять ими, при этом сохраняя целостность всей коллекции. Согласно сценарию секционирования такие операции, как загрузка данных из систем OLTP или OLAP, могут занимать секунды вместо минут или часов в предыдущих выпусках. Операции обслуживания, выполняемые на наборах данных, также производятся значительно эффективнее, так как нацелены только на те данные, которые действительно необходимы, а не на всю таблицу.
Секционировать таблицу имеет смысл, если она очень велика или может значительно разрастись и выполняется любое из следующих условий:
Таблица содержит или будет содержать большое число данных, использующихся разными способами.
Запросы к таблице или ее обновления выполняются не так, как ожидается, а затраты на обслуживание превышают заранее определенные сроки.
Секционированные таблицы обладают всеми свойствами и особенностями, относящимися к проектированию стандартных таблиц и созданию к ним запросов, в том числе ограничениями, значениями по умолчанию, значениями идентификаторов и временных меток, триггерами и индексами. Следовательно, если нужно реализовать секционированное представление на локальном сервере, вместо этого следует создать секционированную таблицу. Дополнительные сведения, которые помогут в понимании, проектировании и реализации секционированных таблиц, см. в разделе Секционированные таблицы и индексы.
Временные таблицы
Существует два вида временных таблиц: локальные и глобальные. Локальные временные таблицы видны только их создателям до завершения сеанса соединения с экземпляром SQL Server, как только они впервые созданы или когда на них появляется ссылка. Локальные временные таблицы удаляются после отключения пользователя от экземпляра SQL Server. Глобальные временные таблицы видны всем пользователям в течение любых сеансов соединения после создания этих таблиц и удаляются, когда все пользователи, ссылающиеся на эти таблицы, отключаются от экземпляра SQL Server.
Дополнительные сведения о временных таблицах см. в разделе Основы создания и изменение таблиц.
Системные таблицы
SQL Server хранит данные, определяющие конфигурацию сервера и всех его таблиц в специальном наборе таблиц, называющихся системными. Пользователи не могут напрямую обращаться к системным таблицам или обновлять их, кроме случаев использования выделенного административного соединения (DAC), которое должно выполняться только под контролем службы сопровождения клиентов Microsoft. Дополнительные сведения см. в разделе Использование выделенного административного соединения. Обычно системные таблицы меняются с каждой новой версией SQL Server. Приложения, которые напрямую ссылаются на системные таблицы, возможно, необходимо будет переписать перед переходом на новый выпуск SQL Server с другими версиями системных таблиц. Данные из системных таблиц доступны через представления каталога. Дополнительные сведения см. в разделе Системные таблицы (Transact-SQL).
Важно! |
---|
Системные таблицы компонента SQL Server 2008 Database Engine реализованы как представления только для чтения, что обеспечивает обратную совместимость с SQL Server 2008. Напрямую работать с данными этих системных таблиц нельзя. Рекомендуется осуществлять доступ к метаданным SQL Server через представления каталога. |
Широкие таблицы
Широкая таблица — это таблица, в которой определен набор столбцов. В широких таблицах используются разреженные столбцы, что позволяет увеличить общее количество столбцов в таблице до 30 000. Количество индексов и статистики также увеличивается до 1000 и 30 000 соответственно. Максимальный размер строки широкой таблицы — 8 019 байт. Таким образом, большинство данных в любой строке должны составлять значения NULL. Чтобы создать или преобразовать обычную таблицу в широкую, следует добавить в определение таблицы набор столбцов. Максимальным числом неразряженных и вычисляемых столбцов в широкой таблице остается 1024.
С помощью широких таблиц можно создавать в приложении гибкие схемы. Добавлять или удалять столбцы можно в любой момент. Следует учитывать, что у широких таблиц существуют особенности производительности, например увеличенное время выполнения и требования к памяти во время компиляции. Дополнительные сведения см. в разделе Вопросы производительности широких таблиц.