Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#246<< #247 |
СОДЕРЖАНИЕ Основы I/O в SQL Server 2000
По материалам статьи Bob Dorr:
SQL Server 2000 I/O Basics Изучение требований к операциям ввода-вывода (I/O) с файлами баз данных Microsoft SQL Server поможет Вам поднять производительность системы и избежать ошибок, связанных с I/O.
Поскольку на рынке продолжают появляться новые устройства и решения для дисковых
хранилищ, условия, в которых работает Microsoft SQL Server, стали чрезвычайно
разнообразным. Чтобы гарантировать целостность данных, которые обслуживает SQL
Server, очень важно, что бы подсистема I/O обладала соответствующими функциональными
возможностями. Важно: При планировании, развертывании и поддержке Microsoft SQL Server, убедитесь, что система ввода-вывода удовлетворяет всем факторам, на которые акцентируется внимание в этой статье.
Microsoft Knowledge Base и Microsoft SQL Server Books Online (BOL) содержат много
подробной информации, связанной с операциями I/O в SQL Server. В тексте, при
необходимости, автором указываются ссылки на информацию, которая важна для понимания
предлагаемого в этой статье материала. В этой главе представлены наиболее распространённые термины, которые используются в этой статье и в других документах, ссылки на которые автор использует по ходу изложения материала.
Это аббревиатура от Atomicity, Consistency, Isolation и Durability, которая
применяется для описания основных требований к SQL Server по организации транзакций,
предъявляемых к надежным серверам баз данных. Write-Ahead Logging протокол (WAL) Write-Ahead Logging - Упреждающее журналирование является ключевым методом обеспечения требований ACID. WAL позволяет обеспечить сброс на диск записей из журнала транзакций, относящихся к изменениям данных, раньше того, как будут сброшены на диск сами эти изменённые страницы данных. Ниже, в этой статье, механика WAL будет описана более подробно. Зафиксированное на заданный момент времени состояние, как будто время было остановлено в этот момент.
Долговременные носители часто путают с физической памятью. SQL Server использует
долговременные носители в качестве памяти, которая может пережить рестарт системы
или её отказ. Долговременными носителями обычно считают память физического диска,
однако к ним относятся и другие устройства, а также некоторые средства кэширования.
Многие высокопроизводительные дисковые подсистемы имеют высокоскоростные средства
кэширования, позволяющие уменьшить время ожидания для операций чтения и записи.
Этот кэш часто резервируется и обладает автономным питанием от собственной батареи.
Автономная батарея обеспечивает питание и соответственно сохранность данных в кэше
до нескольких дней, но реализация такого резервирования отличается у разных производителей.
Производители могут поставлять батареи опционально, чтобы увеличить жизнь кэша,
если это необходимо заказчику.
Пример 1: Аппаратный отказ (материнская плата)
Пример 2: Отказ электропитания Важно: Необходимо всегда консультироваться с поставщиком/изготовителем аппаратных средств для того, что бы выбрать правильную стратегию использования долговременных носителей.
Если происходит сбой аппаратных средства или питания, после восстановления Microsoft
рекомендует обязательно выполнить полную проверку данных командой DBCC CHECKDB и
всегда иметь полный набор резервных копий, что позволит гарантировать целостность
данных.
Порядок записи или последовательность записи (write ordering / write dependency)
- это сохранение подсистемой I/O порядка операций ввода-вывода. Как было сказано
ранее, долговременные носители могут использовать кэширование. Если отследить метки
времени, долговременные носители должны обеспечить порядок их сохранения для
операций I/O. Многоканальные и балансирующие нагрузку системы
Многие высокопроизводительные дисковые подсистемы балансируют нагрузку по нескольким,
имеющимся каналам передачи запросов I/O. Эти системы должны обеспечивать порядок
следования запросов I/O. Многие из таких систем поддерживают порядок I/O за счёт
использования кэша долговременного носителя и последующего комбинирования и/или
разбиения запросов на I/O между доступными ресурсами подсистемы, чтобы потом сохранить
их на физических носителях. ПРОДОЛЖЕНИЕ СЛЕДУЕТ Обзор SQL Server 2005 для разработчика баз данных (окончание)
По материалам статьи Matt Nunn, Microsoft Corporation:
An Overview of SQL Server 2005 for the Database Developer Содержание
Новая парадигма разработки баз данных Улучшения в Transact-SQL Transact-SQL долго был основой для всего программирования в SQL Server. SQL Server 2005 Beta 2 предоставляет множество новых языковых возможностей для разработки масштабируемых приложений баз данных. Эти улучшения включают обработку ошибок, новые рекурсивные возможности запросов и поддержку новых возможностей SQL Server Database Engine. Улучшения Transact-SQL в SQL Server 2005 Beta 2 повышают эффективность написания запросов, позволяя Вам повысить производительность Вашего кода и расширить возможности по управлению ошибками. Большие усилия, которые были затрачены на улучшение Transact-SQL, показывают твердую веру в его важную роль в SQL Server. Рекурсивные запросы и общие табличные выражения Общее табличное выражение (common table expression, CTE) - это временный именованный набор результатов, на который могут ссылаться команды. В простой форме CTE может рассматриваться как улучшенная подзапроса. Вы ссылаетесь на CTE в выражении FROM запроса, так же, как и на подзапросы. Вы определяете CTE только один раз и можете ссылаться на него несколько раз в Вашем запросе. В определении CTE Вы можете ссылаться на переменные, которые определены в том же пакете. Вы даже можете использовать CTE в командах INSERT, UPDATE, DELETE и CREATE VIEW, так же, как Вы используете представления. Настоящая мощь CTE заключается в его рекурсивных возможностях, когда CTE может содержать ссылки на самого себя. Вы используете подзапросы, когда хотите сослаться на результат запроса как на таблицу и не хотите создавать постоянное представление в базе данных. Однако результаты подзапросов имеют ограничение, которое снимается CTE: Вы не можете определить полученную таблицу один раз и использовать ее несколько раз; вместо этого Вы должны создать несколько подзапросов в том же запросе. Также Вы можете определить CTE один раз и использовать его несколько раз в запросе без сохранения в базе данных. Нерекурсивные CTE увеличивают возможности Ваших выражений. Однако для каждой части кода, в которой используются CTE, Вы можете писать более длинный код, который выдает такие же результаты, используя конструкции Transact-SQL, такие, как подзапросы. Это отличается от рекурсивных CTE. Когда CTE ссылается на себя, оно считается рекурсивным. Рекурсивные CTE создаются как минимум из двух частей запроса (или членов, как это называется для рекурсивных запросов). Первая часть - это нерекурсивный запрос, который также называется anchor member (AM). Другая часть - это рекурсивный запрос, который также называется recursive member (RM). Части запроса объединены оператором UNION ALL в одно CTE. Операторы PIVOT и UNPIVOT SQL Server 2005 Beta 2 представляет два новых реляционных оператора, PIVOT и UNPIVOT, которые Вы можете использовать в выражении FROM запроса. Эти операторы выполняют некоторые преобразования над входным табличным выражением и выдают таблицу в результате. Оператор PIVOT превращает строки в столбцы, выполняя при этом агрегацию при необходимости. Он расширяет входное табличное выражение, основываясь на заданном для преобразования столбце и создавая таблицу вывода со столбцом для каждого уникального значения в столбце для преобразования. Оператор PIVOT полезен для обработки сценариев с открытой схемой и для создания матричных отчетов. В сценарии с открытой схемой Вы поддерживаете объекты с наборами свойств, которые либо неизвестны заранее, либо различны для каждого типа объектов. Пользователи Вашего приложения определяют свойства динамически. Вместо предопределения многих столбцов и хранения NULL в Ваших таблицах, Вы разносите свойства по строкам и храните только свойства, относящиеся к определенному экземпляру объекта. PIVOT позволяет Вам создавать матричные отчеты для открытой схемы и других сценариев, в которых Вы превращаете строки в столбцы, выполняя при этом агрегацию и представляя данные в нужной форме. Оператор UNPIVOT выполняет операцию, противоположную PIVOT, превращая столбцы в строки. Он сужает входное табличное выражение, основываясь на заданном для преобразования столбце. Оператор UNPIVOT позволяет Вам нормализовать данные, которые были ранее денормализованы при помощи PIVOT. Оператор APPLY С использованием оператора APPLY SQL Server 2005 Beta 2 позволяет Вам ссылаться на табличную функцию в кореллированном подзапросе. Реляционный оператор APPLY позволяет Вам вызвать определенную табличную функцию один раз для каждой строки внешнего табличного выражения. Вы определяете APPLY в выражении FROM запроса, также, как Вы используете реляционный оператор JOIN. APPLY существует в двух формах - CROSS APPLY и OUTER APPLY. CROSS APPLY вызывает табличную функцию для каждой строки внешнего табличного выражения. Вы можете ссылаться на столбцы внешней таблицы как на аргументы табличной функции. CROSS APPLY возвращает унифицированный набор результатов, собранный из всех результатов, возвращенных отдельными вызовами табличной функции. Если табличная функция возвращает пустой набор для данной внешней строки, строки, то эта строка не возвращается в результате. OUTER APPLY очень похож на CROSS APPLY, но также он возвращает строки из внешней таблицы, даже если табличная функция возвратила пустой набор. Возвращаются значения NULL как значения столбцов, которые соответствуют столбцам табличной функции. Обработка исключений в транзакциях Более ранние версии SQL Server требуют от Вас вставлять код обработки ошибок после каждой команды, которая может вызвать ошибку, как это делается в Microsoft Visual Basic 6.0. Чтобы централизовать код проверки ошибок, Вам нужно использовать метки и операторы GOTO. Более того, такие ошибки, как, например, ошибки конвертирования типа данных, прерывают ваш пакет, так что Вы не можете их отследить с помощью Transact-SQL. SQL Server 2005 Beta 2 обрабатывает многие из этих проблем с помощью простого, но развитого механизма обработки исключений в форме конструкции TRY/CATCH Transact-SQL, идентичной конструкциям Visual Basic .NET и C#. Ошибки, которые ранее вызывали прерывание команды, области видимости, пакета или транзакции, теперь могут быть отслежены и обработаны в том случае, если эти ошибки не слишком серьезны, чтобы вызвать прерывание соединения. Для обработки ошибок, просто введите код, который Вы хотите выполнить, в блоке BEGIN TRY/END TRY, а код обработки ошибок введите в блок BEGIN CATCH /END CATCH. Заметьте, что блок TRY должен иметь соответствующий блок CATCH, в противном случае Вы получите синтаксическую ошибку. Уведомления о событиях DDL SQL Server 2005 Beta 2 позволяет Вам перехватывать системные события и события DDL и отправлять уведомление о событии службе Service Broker. В отличие от триггеров, которые обрабатываются синхронно, уведомление о событии - это механизм событий, который поддерживает асинхронное получение данных. Уведомление о событии отправляет данные XML определенной службе Service Broker, и получатели событий получают эти данные асинхронно. Получатель событий может ожидать новые данные, используя расширения выражения WAITFOR команды Receive у Service Broker. Улучшения полнотекстового поиска SQL Server 2005 включает поддержку для полнотекстовых приложений. Каталогизирование возможностей было улучшено для обеспечения большей гибкости каталогизированных объектов. Производительность запросов и масштабируемость были заметно улучшены, и новые инструменты управления обеспечивают большие возможности работы с полнотекстовыми средствами. Улучшения безопасности SQL Server 2005 получил дополнительные преимущества от инициативы Trustworthy Computing - инициативы Microsoft по повышению опыта пользователей в областях безопасности, защиты информации, надежности и интеграции бизнес-процессов. Частью этой инициативы, широко представленной в январе 2002 года, является исследование Microsoft процессов разработки, которые помогают удостовериться, что наши продукты и развертывание наших продуктов безопасны с точки зрения дизайна, безопасны с настройками по умолчанию, и безопасны в развернутом виде. Команда разработки Microsoft SQL Server объединила эти процессы при разработке SQL Server 2005. После развертывания Microsoft осуществляет поддержку пользователей и партнеров по вопросам безопасности. В результате SQL Server 2005 будет включать наиболее развитые средства безопасности в любом релизе SQL Server. Все улучшения и средства безопасности можно разделить по трем областям: - Ограничение пользовательского доступа к SQL server: больший контроль над доступом к SQL Server и улучшения в механизме, который позволяет администратору контролировать доступ к SQL Server через политики. - Отключение служб и ограничение возможности конфигурирования служб: предоставление администраторам возможности ограничивать доступ к ресурсам в SQL Server, в данных этим администраторам пределах и с определенным уровнем масштабирования, чтобы быть уверенными, что они имеют легко управляемую систему без нарушения принципа предоставления минимально возможных привелегий. Из-за того, что для новых инсталляций сервера определенные службы по умолчанию отключены, пользователи теперь более активно вовлечены в решение вопроса, какие службы они хотят включить дополнительно. - Уменьшение у новых средств мест возможных атак системы: сначала, во время установки и настройки SQL Server, количество мест возможных атак системы минимально. На протяжении всего цикла разработки продукта новые средства проверяются и тестируются на предмет безопасности, чтобы уменьшить количество мест возможных атак системы. Microsoft SQL Server 2005 предоставляет инструменты, которые требуются разработчикам для создания новых классов приложений базы данных. Удаляя барьеры при выполнении кода и расположении хранилища, и объединяя вместе различные стандарты, такие, как XML, SQL Server 2005 предоставляет разработчику баз данных большое количество новых возможностей. Эта статья - только вступление к описанию того, что Вы можете делать в SQL Server 2005. Статьи на русском языке
Некоторая оптимизация в 2000 сиквеле:
SSIS: Adding variable values to the pipeline Самые популярные темы недели
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
Сужение объема полнотекстового поиска |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться |
В избранное | ||