Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#266<< #267 |
СОДЕРЖАНИЕ Секционированные таблицы и индексы SQL Server 2005 (продолжение)
По материалам статьи Kimberly L. Tripp:
SQL Server 2005. Partitioned Tables and Indexes Секционирование индекса
Секционировать можно не только данные, но и индексы. Индексы можно секционировать с
помощью той же функции, что и базовую таблицу, либо любой другой. Однако с точки зрения
производительности лучше всего разделять таблицу и ее индексы, используя одну и ту же
функцию. Если таблица и индексы используют одну и ту же функцию секционирования, и
секционируются по одним и тем же столбцам (в том же порядке), такая таблица и индексы
называются выровненными. Если индекс создается по уже секционированной таблице, SQL
Server автоматически выровняет новый индекс согласно схеме секционирования таблицы,
если только индекс явно не секционирован по-другому. Если таблица и ее индексы выровнены,
тогда SQL Server может перемещать секции внутри секционированных таблиц более эффективно,
поскольку все связанные данные и индексы разделены по одному алгоритму. Особые режимы секционирования - Split, Merge и Switch
В SQL Server 2005 для помощи в управлении секционированными таблицами введено несколько
новых понятий. Поскольку секционирование применяется к большим таблицам для обеспечения
масштабируемости и поддержания лучшей производительности этих таблиц, весьма вероятно,
что количество секций, выбранное в момент создания функции секционирования, со временем
изменится. Используя оператор ALTER TABLE с новой опцией "split" ("расщепление"), Вы
можете добавить в таблицу новую секцию. Когда секция "расщепляется", часть данных
может быть перенесена в новую секцию, однако это не лучшее решение с точки зрения
производительности. Ниже в этой статье будет приведен полный сценарий работы режима
"split".
Когда начинается октябрь (в базе данных OLTP), необходимо переместить данные сентября
в секционированную таблицу, используемую для анализа. Включение/выключение секций в
таблицу - очень быстрый процесс, к тому же, вся подготовительная работа может быть
выполнена из-за пределов секционированной таблицы. Этот сценарий в подробностях
описывается в учебном примере, который будет рассмотрен чуть ниже. Его основная идея
заключается в использовании "каскадных таблиц", которые в конечном счете станут секциями
в секционированной таблице ("включение" таблицы, становящейся секцией в секционированной
таблице) или будут хранить устаревшие данные таблицы ("выключение" секции, становящейся
автономной таблицей).
Для того чтобы удалить первую (старшую) секцию (сентябрь 2003), необходимо воспользоваться новой опцией "слияния" оператора ALTER TABLE - "merge" (см. Рисунок 7). "Сливая" секции, вы фактически удаляете граничную точку между ними, и, следовательно, устраняете одну из секций (в данном случае сокращая количество секций до 12). Слияние секции будет очень быстрой операцией в том случае, если никакие строки данных не должны быть перемещены; в нашем случае, поскольку первая секция пуста, никакие записи не перемещаются (из первой секции во вторую). Если бы первая секция НЕ была пуста, то при слиянии данные пришлось бы перемещать из первой секции во вторую, и это было бы очень дорогостоящей операцией. Впрочем, в весьма распространенном сценарии "sliding window" ("Скользящее Окно") это никогда не должно произойти, поскольку Вы всегда будете объединять пустую секцию с активной секцией, и соответственно никакие записи перемещаться не будут.
И наконец случай, когда новая таблица должна быть включена в секционированную таблицу. Помните, что для того чтобы осуществить включение секции в секционированную таблицу путем простого изменения метаданных, вся работа по загрузке данных и созданию индексов уже должна быть произведена в новой таблице - вне границ секционированной таблицы. Для включения новой секции в таблицу сначала необходимо "расщепить" последний (самый новый, пустой) диапазон на две секции. Кроме того, вам необходимо перестроить ограничение целостности таблицы под требования нового диапазона. Секционированная таблица будет включать 13 секций. Последняя секция в сценарии "Скользящее Окно" с LEFT-функцией секционирования будет всегда оставаться пустой.
И наконец, недавно загруженные данные включаются в 12-ую секцию – в качестве данных за сентябрь 2004.
В результате мы получаем таблицу такого вида:
Важно знать, что split и merge – это атрибуты оператора ALTER PARTITION FUNCTION, а
switch – это атрибут оператора ALTER TABLE. Кроме того, только одна секция может быть
добавлена или удалена единовременно. Если в диапазонную секционированную таблицу
требуется добавить или удалить сразу несколько секции, то тогда наиболее оптимальным
способом балансировки данных (вместо балансировки целой таблицы для каждого расщепления)
может послужить создание новой секционированной таблицы – использование новой функции
и схемы секционирования и затем перемещение данных в новую секционированную таблицу.
Для "перемещения" данных сначала скопируйте их, используя оператор INSERT newtable
SELECT … FROM oldtable, а затем удалите исходные таблицы. Будьте осторожны, не
потеряйте данные, предотвращая пользовательские (или любые другие) модификации во
время этого процесса. ПРОДОЛЖЕНИЕ СЛЕДУЕТ Использование статистики оптимизатором запросов Microsoft SQL Server 2005 (продолжение)
По материалам статьи Eric N. Hanso: Statistics Used by the Query Optimizer in Microsoft SQL Server 2005 Статистическая коллекция SQL Server 2005 SQL Server 2005 собирает представленную ниже коллекцию статистической информации уровня таблиц, которая является частью объекта статистики, но SQL Server 2005 иногда использует её и для оценки стоимости запроса:
SQL Server 2005 собирает следующую статистику по столбцам таблицы и сохраняет её в объекте статистики (statblob):
Гистограмма - это набор значений данного поля, ограниченный до 200 значений. Все значения поля, или выборка из них, отсортированы, и эта упорядоченная последовательность может быть разделена на не более чем 199 интервалов так, чтобы фиксировалась наиболее статистически важная информация. Как правило, эти интервалы имеют разные размеры. Ниже представлены значения или информация, достаточная для получения такой информации, и сохраняемая для каждого шага в гистограмме.
Гистограммы SQL Server 2005 формируются только по одному столбцу, который является первым в наборе столбцов ключа объекта статистики. SQL Server 2005 формирует гистограмму из отсортированного набора значений столбца в три шага:
Если гистограмма была сформирована с использованием выборки, то значения RANGE_ROWS,
EQ_ROWS, DISTINCT_RANGE_ROWS и AVG_RANGE_ROWS будут иметь оценки, и поэтому они не
могут остатьсяь целыми числами. Пример создания и демонстрации статистики Представленный в этой главе пример иллюстрирует то, как создавать статистику автоматически и вручную, а также как показать список статистик и саму статистическую информацию. Получаемые результаты будут показаны не всех команд, а только когда это необходимо. Вы можете выполнить этот пример самостоятельно, чтобы увидеть полный набор результатов.
Результат:
Результат::
Результат::
Результат::
Результат (только второй rowset)::
Чтобы увидеть полностью заполненную гистограмму для большой таблицы, выполните следующие команды:
ПРОДОЛЖЕНИЕ СЛЕДУЕТ Руководство по работе с Microsoft SQL Server 2000 Analysis Services (продолжение)
По материалам статьи Carl Rabeler и Dave Wickert, Microsoft Corporation:
Microsoft SQL Server 2000 Analysis Services Operations Guide Содержание
Введение MSSQLServerOLAPService По умолчанию, служба MSSQLServerOLAPService работает под локальной системной учетной записью, которая имеет полные права администратора на локальном компьютере, но не имеет доступа к удаленным компьютерам. Так как локальная системная учетная запись не имеет доступа к сети, во многих случаях Вам понадобится изменить учетную запись службы на учетную запись с доступом к сети. В Windows 2000 это доменная учетная запись пользователя. Если Вы работаете в Windows Server 2003, то Вы можете использовать учетную запись NetworkService. Учетная запись, под которой работает служба MSSQLServerOLAPService, должна иметь достаточные права для выполнения различных задач. Служба MSSQLServerOLAPService должна иметь возможность обрабатывать объекты Analysis Services, иметь доступ к источнику данных во время обработки и получать настройки безопасности в многослойной среде. Совет: При использовании сетевого протокола именованных каналов (named pipes network protocol) процесс (например, операция обработки Analysis Services), пытающийся получить доступ к приложению (например, к SQL Server) на удаленном компьютере, должен быть аутентифицирован операционной ситемой Windows перед тем, как его аутентифицирует SQL Server. При использовании сокетов TCP/IP процесс обычно не аутентифицируется операционной системой Windows перед передачей его настроек безопасности для аутентификации в SQL Server. SQL Server Agent Когда Вы автоматизируете задачи по созданию объектов (например, при создании разделов) или обработку объектов, используя SQL Server Agent, учетная запись службы SQL Server Agent должна иметь достаточные права для создания или обработки объектов.
Обработка Когда Вы запускаете службу MSSQLServerOLAPService под доменной учетной записью пользователя (или под учетной записью NetworkService), Вы должны добавить эту учетную запись в локальную группу OLAP Administrators на компьютере с Analysis Services, чтобы разрешить Analysis Services обработку измерений, разделов и ролей сбора данных на этом компьютере. Наличие этой учетной записи в группе OLAP Administrators дает службе MSSQLServerOLAPService доступ к реестру, а также папкам Data и Temporary. Пользовательские учетные записи, не являющиеся членами группы OLAP Administrators, не должны иметь такого доступа. Доступ к источнику данных Учетная запись службы MSSQLServerOLAPService также должна иметь права доступа к данным в базе данных источника данных, если для доступа к источнику данных используется доверенное соединение. При использовании доверенных соединений для подключения к источнику данных используется учетная запись службы MSSQLServerOLAPService. Если доверенные соединения не используются, Вы можете определить имя пользователя и пароль. Права, необходимые для подключения к источнику данных, также зависят от типа структуры хранилища, использующегося для разделов Analysis Services. Если используется хранилище MOLAP, учетная запись службы должна иметь как минимум права на команду SELECT в базе данных источника данных. Если используется хранилище ROLAP или HOLAP, учетная запись службы должна иметь как минимум права на команды SELECT и CREATE TABLE в базе данных источника данных. Для использования ресурсов на других серверах Analysis Services необходимы также дополнительные права. При использовании связанных кубов учетная запись службы MSSQLServerOLAPService должна иметь права на чтение данных из куба и не должна быть установлена безопасность уровня ячейки. Если Analysis Services является удаленным издателем, то учетная запись службы MSSQLServerOLAPService должна быть включена в группу OLAP Administrators на компьютере, где находится удаленный раздел. Если Analysis Services является удаленным подписчиком, то учетная запись службы MSSQLServerOLAPService должна иметь права на чтение данных из куба. Получение настроек безопасности клиента через приложение среднего слоя Учетная запись службы MSSQLServerOLAPService не требуется в обычной клиент-серверной среде. В этой среде пользовательское приложение подключается напрямую к компьютеру с Analysis Services для выполнения запроса или создания объекта и передает настройки пользователя напрямую в Analysis Services для обработки. В зависимости от настроек безопасности уровня ячеек и уровня измерения Analysis Services дает доступ или отказывает в доступе. Однако, если клиентское приложение пытается соединиться с Analysis Services через сервер среднего слоя, то процесс аутентификации не так прост. Обычно настройки безопасности не могут передаваться множеству компьютеров. Но если сервер приложения среднего слоя и компьютер с Analysis Services поддерживают аутентификацию и делегирование Kerberos, то клиентские настройки безопасности могут быть переданы от приложения среднего слоя к Analysis Services. Чтобы работали аутентификация, делегирование, имперсонация и взаимная аутентификация Kerberos, служба MSSQLServerOLAPService должна быть запущена под одним из следующих типов учетных записей: - Локальная системная учетная запись (не имеет доступа к сети). - Доменная учетная запись администратора. - Доменный пользователь без привилегий администратора в домене Microsoft Active Directory при условии, что администратор домена зарегистрирует Service Principal Name (SPN) учетной записи отдельно, используя утилиту setspn из Windows 2000 Resource Kit. Замечание: Существует некоторое количество шагов, которые Вы должны выполнить, чтобы начали работать аутентификация, делегирование, имперсонация и взаимная аутентификация Kerberos. Для дополнительной информации об этих шагах смотрите "Security Account Delegation" в SQL Server Books Online. Также зайдите в Knowledge Base (support.microsoft.com) и посмотрите статью "Use Kerberos Authentication for Microsoft SQL Server 2000 Analysis Services". Служба SQL Server Agent Служба SQL Server Agent используется для запуска задачи Analysis Services Processing в пакете Data Transformation Services (DTS), а также для выполнения job'ов с операциями DSO, выполняемыми скриптами Microsoft Visual Basic® Scripting Edition (VBScript). Чтобы быть уверенным, что учетная запись службы SQL Server Agent имеет достаточные права для выполнения этих задач, запустите SQL Server Agent под доменной учетной записью пользователя (или под учетной записю NetworkService в Windows Server 2003) и добавьте эту учетную запись в группу OLAP Administrators на компьютере с Analysis Services. Определение проблем с правами для SQL Server Agent иногда может быть затруднительным, пока Вы не поймете, что когда Вы запускаете job SQL Server Agent интерактивно (щелкните правой кнопкой мыши на job в SQL Server Enterprise Manager и выберите Run), используемые настройки безопасности не являются таковыми для учетной записи службы SQL Server Agent. Когда Вы запускаете job SQL Server Agent интерактивно, используются настройки безопасности пользователя, который запустил job. Настройки безопасности учетной записи службы SQL Server Agent используются только во время запуска job'а по расписанию (если только Вы не зайдете под доменной учетной записью пользователя, которую использует SQL Server Agent). ПРОДОЛЖЕНИЕ СЛЕДУЕТ Статьи на русском языке
Layout of Clustering algorithm content Самые популярные темы недели
Кто на чем пишет клиентов под SQL Server?
Microsoft to release SQL Server 2005 the week of November 7, 2005 |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться
Вспомнить пароль |
В избранное | ||