Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#268<< #269 |
СОДЕРЖАНИЕ Секционированные таблицы и индексы SQL Server 2005 (продолжение)
По материалам статьи Kimberly L. Tripp:
SQL Server 2005. Partitioned Tables and Indexes Соберем все воедино: конкретные примеры После знакомства с концепцией, преимуществами и небольшими фрагментами кода, связанного с секционированием, у вас уже наверное сложилось достаточное понимание процесса секционирования. Однако для каждого из шагов доступны специфичные параметры настройки и опции, которые в определенных случаях должны удовлетворять разнообразным критериям. Следующая часть статьи поможет Вам соединить все полученные Вами знания воедино. Секционирование диапазона - сведения о продажах
Характер использования сведений о продажах зачастую изменчив. Как правило, данные текущего
месяца - это оперативные данные; данные предшествующих месяцев - это в большой степени
данные, предназначенные для анализа. Чаще всего анализ производится ежемесячно,
ежеквартально, либо ежегодно. Поскольку разным аналитикам могут потребоваться значительные
объемы различных аналитических данных одновременно, то секционирование лучше всего
позволит изолировать их деятельность. В рассматриваемом далее сценарии данные стекаются
из 283 узлов и поставляются в виде двух файлов стандартного формата ASCII. Все файлы
отправляются на центральный файл-сервер не позднее 3.00 am первого дня каждого месяца.
Размеры файлов колеблются, но в среднем составляют примерно 86.000 заказов в месяц.
Каждый заказ в среднем составляет 2.63 позиции, поэтому файлы OrderDetails составляют
в среднем по 226180 строк. Каждый месяц добавляется примерно 25 миллионов новых заказов
и 64 миллиона строк номенклатуры заказов. Сервер анализа истории поддерживает данные
за 2 последних года. Данные за два года - это чуть меньше 600 миллионов заказов и
более 1.5 миллиардов строк в таблице OrderDetails. Поскольку данные часто анализируются
путем сравнения показателей месяцев одного и того же квартала, либо одних и тех же
месяцев за предыдущие годы, то выбрано диапазонное секционирование. В качестве размера
диапазона выбран месяц.
Каждый из 12 логических дисков использует конфигурацию RAID 1+0, поэтому общее количество дисков, необходимое для таблиц Orders и OrderDetails, равно 48. Не смотря на это, SAN поддерживает до 78 дисков, так что остальные 30 дисков используются для transaction log, TempDB, системных баз данных и прочих небольших таблиц, таких как Customers (9 миллионов записей) и Products (386 750 записей), и т.д. Таблицы Orders и OrderDetails будут использовать одни и те же граничные условия и одно и то же размещение на диске; фактически, они будут использовать одну и ту же схему секционирования. В результате (взгляните на два логических диска E:\ и F:\ на Рисунке 13) данные таблиц Orders и OrderDetails за одни и те же месяцы будут располагаться на одних и тех же дисках:
Хотя это и выглядит запутанным, все это весьма просто реализовать. Самое сложное в создании нашей секционированной таблицы - это доставка данных из большого количества источников - 283 хранилища должны иметь стандартный механизм доставки. Тем не менее, на центральном сервере есть только одна таблица Orders и одна таблица OrderDetails. Чтобы превратить обе таблицы в секционированные, мы должны сначала создать функцию и схему секционирования. Схема секционирования определяет физическое расположение секций на дисках, таким образом, файловые группы также должны существовать. Поскольку для наших таблиц необходимы файловые группы, то следующим шагом является их создание. Синтаксис операторов создания каждой файловой группы идентичен приведенному ниже, тем не менее, данным образом должны быть созданы все двадцать четыре файловые группы. Разберите самостоятельно пример кода на T-SQL, приведенного в приложении RangeCaseStudyFilegroups.sql в качестве полного сценария для создания всех двадцати четырех файловых групп (примечание: Вы не сможете выполнить этот сценарий, не имея соответствующих логических дисков; однако, сценарий включает таблицу "установки", которая может быть изменена для упрощенного тестирования). Вы можете поменять названия/расположения дисков на один-единственный диск, для того чтобы протестировать и изучить синтаксис. Убедитесь, что Вы исправили размеры файла на MB вместо GB, и выбрали меньший начальный размер файлов, исходя из доступного вам дискового пространства. Двадцать четыре файла и файловые группы будут созданы в базе данных SalesDB. Все будут иметь схожий синтаксис, за исключением местоположения, имени файла и имени файловой группы:
Как только все двадцать четыре файла и файловые группы будут созданы, Вы сможете определить
функцию и схему секционирования. Убедиться в том, что ваши файлы и файловые группы созданы,
вы можете при помощи системных хранимых процедур sp_helpfile и sp_helpfilegroup.
ПРОДОЛЖЕНИЕ СЛЕДУЕТ Использование статистики оптимизатором запросов Microsoft SQL Server 2005 (продолжение)
По материалам статьи Eric N. Hanso: Statistics Used by the Query Optimizer in Microsoft SQL Server 2005 Поддержка статистики в SQL Server 2005
После череды операций INSERT, DELETE и/или UPDATE, выполненных с таблицей, статистика
уже не будет отражать действительное распределение по затронутому полю или индексу.
Если оптимизатору запросов SQL Server потребуется статистика для какого - нибудь поля
таблицы, которая была перед этим подвержена значительным модификациям, причём, уже
после того, как статистические данные были созданы или обновлены; в таком случае SQL
Server автоматически обновит статистику по пробной выборке значений этого поля (как
при auto update statistics). Автоматическое обновление статистики будет спровоцировано
оптимизацией запроса или компиляцией плана исполнения, и затронет только участвующие
в запросе поля. Статистика будет обновлена перед компиляцией запроса, если опция
AUTO_UPDATE_STATISTCS_ASYNC принимает значение OFF, а если значение ON, то обновление
статистики будет выполнено асинхронно.
Временные таблицы вообще не имеют статистики.
SQL Server 2005 может автоматически обновлять статистику по всем базам, потаблично, поиндексно или на уровне объектов статистики. Не смотря на то, что можно изменить эту установку с помощью всего одной команды sp_autostats для всей статистики у одной таблицы, поведение статистики будет изменено индивидуально для каждого объекта статистики и индекса этой таблицы. Не существует метаданных, которые бы явно хранили информацию о том, что auto update statistics принимает значение ON или OFF для отдельной таблицы. В представленной ниже таблице показан суммарный эффект от разных установок для базы данных, таблицы и её индексов на возможности установок для объекта:
Не возможно отменить установленное базе данных для auto update statistics значение
OFF, устанавливая его в ON для статистики более низкого уровня объектов. ПРОДОЛЖЕНИЕ СЛЕДУЕТ Описание технологии работы Log Shipping SQL Server 2000 Автор: Ирина Наумова 3 Мониторинг передачи журналов (окончание)
После того, как передача журналов настроена, на сервере мониторинга, в папке "Management",
появляется новая вкладка "Log Shipping Monitor". Некоторые возможности, доступные
с помощью этой утилиты, мы уже рассмотрели в предыдущем разделе. 4 Где хранится информация о Log Shipping Информация о передаче журналов хранится в базе данных msdb в следующих таблицах:
Эти таблицы присутствуют на всех серверах, участвующих в передаче журналов. При этом
на каждом из серверов данными заполняется только часть таблиц, в зависимости от того,
какую функцию выполняет сервер в процессе передачи журналов: является ли он первичным,
вторичным или сервером мониторинга. 5 Синхронизация передачи журналов c репликацией транзакций Для того чтобы в случае выхода из строя сервера - издателя, можно было бы его заменить резервным сервером, на который выполняется передача журналов, существует два режима синхронизации Log Shipping с транзакционной репликацией: синхронный и полусинхронный. 5.1 Синхронный режим:
Для перехода в этот режим для базы данных устанавливается опция sync with backup. 5.2 Полусинхронный режим:
Этот режим используется, когда недопустимы задержки в работе репликации. Работа Log
Reader Agent уже не зависит от создания резервных копий журнала. При этом резервный
сервер также можно ввести в качестве издателя в случае сбоя первичного, несмотря на
то, что данные не синхронны. 6 Заключение
Для того чтобы процесс передачи журналов функционировал без сбоев, администратору необходимо
хорошо обдумывать свои действия и их последствия. 7 Статьи MSDN, в которых описывается, как решать некоторые проблемы, возникающие при настройке и работе Log Shipping Часто повторная настройка Log shipping вызывает ошибку, поскольку остается информация в таблицах от предыдущей настройки. Эта ошибка и методы ее устранения описаны в статье MSDN: Разрешение причин возникновения ошибок в работе заданий Log Shipping Alert Job - Backup и Log Shipping Alert Job – Restore:
А также некоторые причины описаны в пункте 1.3.2 Ошибка, возникающая после добавления нового или удаления одного из файлов базы данных между созданием резервных копий: Не удается произвести смену ролей, когда имена баз данных на первичном и вторичном серверах отличаются: Ошибка, возникающая если имя БД содержит имя устройства (AUX, PRN, COM1, COM2, COM3, COM4): Ошибка, возникающая после обновления версии SQL Server Standard Edition до Enterprise Edition: Ошибка при вызове процедуры sp_resolve_logins, при смене ролей серверов: Ошибка, возникающая при настройке передачи журналов на серверах, задействованных в кластере: Если при конфигурации Log Shipping используется опция No Recovery, а база данных на вторичном сервере в состоянии Standby: Ошибка, возникающая при смене ролей серверов на именованных экземплярах SQL Server: Возросло количество используемого места в журнале после восстановления копий журналов транзакций на вторичном сервере: Ошибка может возникнуть, если на сервере существует DTS пакет, в котором используется Copy Objects Task: Ошибка 3101, возникающая в работе процедуры sp_change_secondary_role:
Если Вы изменили папку, в которой сохраняются копии журнала транзакций через диалоговое окно свойств плана обслуживания, а задание копирования журналов все еще продолжает просматривать старую папку: Ошибка 3456, возникающая при попытке применить копию журнала транзакций: В редких случаях, процесс передачи журналов может вызвать проблему подключения к SQL Server. Это связано с тем, что процессы, которые запущены в рабочем пространстве SQL Server, могут блокировать ресурсы, что препятствует подключению к TCP/IP порту. Это описано в следующей статье: 8 Другие полезные ресурсы в Интернет, затрагивающие передачу журналов и помогающие в разрешении проблем, возникающий в работе Log Shipping
9 Приложение - Схема работы Log Shipping Руководство по работе с Microsoft SQL Server 2000 Analysis Services (продолжение)
По материалам статьи Carl Rabeler и Dave Wickert, Microsoft Corporation:
Microsoft SQL Server 2000 Analysis Services Operations Guide Содержание
Введение Миграция репозитория Метаданные для объектов, создаваемых в экземпляре Analysis Services (кубов, измерений и т.д.), хранятся в репозитории Analysis Services. По умолчанию репозиторий - это база данных Microsoft Access msmdrep.mdb, которая хранится в папке ..\Microsoft Analysis Services\Bin на компьютере с Analysis Services. Формат Access используется для того, чтобы пользователи, которые не используют SQL Server для хранения реляционных данных, могли использовать Analysis Services. Но если Вы используете SQL Server, миграция репозитория в базу данных SQL Server добавляет масштабируемость, поддержку и безопасность уровня предприятия. Миграция репозитория также позволяет Вам выполнять скоординированное резервное копирование базы данных репозитория и файлов из папки Data. Для дополнительной информации смотрите главу "Резервное копирование и восстановление" далее в этой статье. Перед миграцией репозитория создайте специально выделенную для этого базу данных (например, OLAPRepository), используя регистро-независимую сортировку (case-insensitive collation). Выделенная база данных позволяет Вам делать резервные копии базы данных репозитория по собственному расписанию. Вы можете создать эту выделенную базу данных в экземпляре SQL Server на удаленном компьютере, но для лучшей производительности Вам следует создать базу данных на локальном экземпляре SQL Server. Чтобы произвести миграцию репозитория в SQL Server, используйте Migrate Repository Wizard, выбрав формат Analysis Services. Важно: В большинстве случаев не выполняйте миграцию репозитория в базу данных msbd, которая стоит по умолчанию в Migrate Repository Wizard. В то время как база данных msbd подходит для одиночного экземпляра SQL Server, выделенного под репозиторий, обычно ее лучше не использовать. Если Вы выберете базу данных msbd, то репозиторий Analysis Services будет доступен всем другим системным ресурсам SQL Server на этом экземпляре, например, задачам по поддержке базы данных, определениям репликации, пакетам DTS и логам выполнения всех типов. Используя выделенную базу данных, Вы можете выполнять резервное копирование и восстановление по собственному расписанию и независимо от других объектов, хранящихся в базе данных msbd. После миграции репозитория в базу данных SQL Server, Вы не сможете выгрузить его обратно в базу данных Microsoft Access. Миграция не удаляет базу данных msmdrep.mdb. Для дополнительной безопасности Вам следует удалить базу данных msmdrep.mdb (определив путь к файлу через Windows Explorer) после успешного завершения миграции. Если миграция прерывается по какой-либо причине, Analysis Services откатывает любые изменения и продолжает использовать базу данных msmdrep.mdb. Совет: Чтобы определить местонахождение репозитория на незнакомом экземпляре Analysis Services, щелкните правой кнопкой мыши на сервере в Analysis Manager и выберите Edit Repository Connection String. Эта опция была добавлена в SP3. До SP3 Вы могли просматривать строку соединения в реестре. Однако, после SP3 эта строка соединения в реестре зашифрована и использование команды Edit Repository Connection String в Analysis Manager - это единственный способ увидеть местонахождение текущего репозитория. Логирование и отправка сообщений об ошибках Analysis Services ведет лог запросов, чтобы Вы могли проанализировать варианты запросов и повысить свои возможности написания кода. Вы можете сконфигурировать свойства этого лога запросов. Вы также можете включить лог обработки и включить в Analysis Services отправку сообщений об ошибках. Лог запросов Чтобы позволить Usage Based Optimization Wizard создавать агрегаты, основанные на шаблонах предыдущего использования, и чтобы Usage Analysis Wizard мог генерировать отчеты с анализом использования запросов, Analysis Services сохраняет уровни, к которым обращался каждый N-й запрос, в логе запросов, который хранится в базе данных Microsoft Access. По умолчанию логируется каждый десятый запрос. По умолчанию местонахождение лога установлено как C:\Program Files\Microsoft Analysis Services\Bin\msmdqlog.mdb. Этот файл, как любой файл лога, должен быть защищен от неавторизованного доступа. Вы можете изменять интервал логирования (каждый N-й запрос), останавливать любое логирование или очищать лог. Установка слишком маленького интервала логирования может сильно повлиять на производительность. Увеличение интервала логирования до значений больше десяти может повысить производительность, особенно если Вы работаете с системой, где одновременно сотни пользователей генерируют множество запросов в секунду. В такой системе Analysis Services пытается быстро логировать множество запросов, а Access не может записать такое количество информации настолько же быстро, как высокопроизводительная система базы данных. Если обнаружится, что лог запросов активно используется, то для дополнительной стабильности и восстанавливаемости рассмотрите миграцию лога на выделенную базу данных SQL Server. Просто экспортируйте таблицу QueryLog из базы данных Access msmdqlog.mdb в базу данных SQL Server, измените запись реестра QueryLogConnectionString и перезапустите Analysis Services. Если Вы будете производить миграцию лога таким методом, не забудьте соответственно изменить Ваши процедуры резервного копирования и восстановления. Также надо очищать лог запросов после последовательного запуска Usage-Based Optimization Wizard на всех кубах сервера. Чтобы изменить свойства лога запросов, щелкните правой кнопкой мыши на сервере в Analysis Manager, выберите Properties и перейдите на вкладку Logging. Замечание: Лог запросов сохраняет запросы всего сервера, а не определенного куба. ПРОДОЛЖЕНИЕ СЛЕДУЕТ [В начало]
Oracle-on-Microsoft Shops Face Double Patching Delight Самые популярные темы недели
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
Установка SQL 2000 sp1 Хранилища данных
|
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться
Вспомнить пароль |
В избранное | ||