Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#248<< #249 |
СОДЕРЖАНИЕ
Наш сайт участвует в конкурсе "Интернить'2005"
в номинации Профессиональное сообщество.
C уважением, Основы I/O в SQL Server 2000 (продолжение)
По материалам статьи Bob Dorr:
SQL Server 2000 I/O Basics
Размер страницы базы данных SQL Server равен 8 Кбайт. Каждая страница содержит
заголовок с полями номера страницы, идентификатора объекта, LSN, идентификатора
индекса, бита чётности (Torn bits) и типа страницы. Сами строки данных расположены
на оставшейся части страницы. Внутренние механизмы базы данных отслеживают состояние
распределения страниц данных в базе.
Номера страниц могут принимать значения от 0 до ((Максимальный размер файла / 8 Кб)-1).
Номер страницы, умноженный на 8 Кбайт, даёт смещение в файле к первому байту страницы.
Это идентификатор объекта, который назначен странице в схеме базы данных. Страница
может быть назначена только на единственный объект. Когда страница читается с диска,
у страницы проверяется ID объекта. Если ID объекта не соответствует ожидаемому, SQL
Server генерирует ошибку 605. Обычно SQL Server (если исключить не смешанные экстенты) распределяет место не только страницами, но и экстентами. Экстент - это блок из восьми страниц по 8 Кб, всего 64 Кб. SQL Server часто читает сразу экстентами (64 Кб или 128 Кб). Буферный пул - Buffer Pool (BPool) занимает наибольшую часть адресного пространства непривилегированного режима, оставляя только около 100 Мбайт для диапазона виртуальных адресов, используемых для стеков потока, библиотек DLL и др. Буферный пул резервируется большими кусками, но кратными рабочему размеру страницы базы данных - 8 Кб.
Аппаратный кэш чтения - это обычный кэш упреждающего чтения, используемый контроллерами.
В зависимости от размера доступного кэша, кэш упреждающего чтения используется для
повышения производительности извлечения данных, которых помещается в кэш больше,
чем фактически запрашивается для чтения.
Аппаратный кэш записи обслуживает не только запросы на запись, но и запросы на
чтение, если данные все еще находятся в аппаратном кэше записи. Это распространённый
механизм кэширования I/O. SQL Server error 832, "I/O error <error> detected during <operation> at offset <offset> in file '<file>'" Происходит когда:
Примечание переводчика: Stale Read возникает при запросах ReadFile API, если операционная система, драйвер или кэширующий контроллер ошибочно возвращает старую версию кешируемых данных.
Для получения подробностей об ошибке 823, см. статью: SQL Server error 605, "Attempt to fetch logical page (x:yyy) in database 'dddd' belongs to object 'aaa', not to object 'tttt'." Происходит когда:
Ошибка 605 у SQL Server проявляется, когда к странице обращаются для сканирования. Сканирование ассоциируется с конкретным объектом. Если при сканировании ID не соответствует ID объекта, который хранится в заголовке страницы, генерируется эта ошибка. Это происходит в момент первого использования страницы и может произойти при последующем поиске страницы в оперативной памяти. ПРОДОЛЖЕНИЕ СЛЕДУЕТ Ошибка, возникающая при вставке дублированных значений в ключевые поля в процессе репликации
По материалам статьи Andy Warren:
Duplicate Key Inserted Error During Replication ![]()
Когда генерируется эта ошибка, работа Distribution Agent останавливается.
Обычно после возникновения этой ошибки, подписчика необходима реинициализировать
и перенести на него заново сгенерированный снимок. Если Вы используете SQL 7,
то во время генерации снимка SQL Server накладывает разделяемую блокировку на
таблицу, которая в свою очередь блокирует работу пользователей. Кроме того,
применение нового снимка на подписчике также может идти достаточно долго. ![]() Таким образом для приведенного примера нужно удалить транзакцию, для которой значение xact_seqno равно 0x000000110000014E0004. Если Вы посмотрите на детальное описание ошибки на первом рисунке, вы убедитесь в том, что последняя команда, выполняемая агентом дистрибуции, соответствует команде из результирующего набора, который возвращает процедура sp_browsereplcmds. Теперь осталось сделать последний шаг:
И последнее альтернативное решение этой проблемы заключается в том, чтобы удалить на подписчике строку с тем значением ключа, которое пытается вставить агент дистрибуции. Увидеть это значение можно изучив текст ошибки в окне детализации ошибки среди параметров процедуры sp_MSins_Books. Просмотрев текст процедуры на подписчике, можно определить что первый ее параметр – это значение первичного ключа, таким образом, нужно подключиться к подписчику и удалить запись с тем же значением ключа.
Для более подробной информации о параметре –skiperrors обратитесь к справочной системе SQL Server (BOL) или статье MSDN Handling Agent Errors. Статьи на русском языке
Предлагает ли Microsoft инструмент для диагностирования производительности
Windows Server 2003? Решение проблем, связанных с целостностью данных в Analysis Services 2005 (начало)
По материалам статьи T.K. Anand, Microsoft Corporation:
Handling Data Integrity Issues in Analysis Services 2005 Март 2005 года О чем эта статья: В статье рассматриваются типичные проблемы, связанные с целостностью данных, и показывается, какие средства дает Analysis Services 2005 для решения этих проблем. (10 печатных страниц)
Относится к: Содержание
Вступление Проблемы, связанные с целостностью данных, типичны для реляционных баз данных, особенно для оперативных (OLTP) систем. Эти проблемы обычно исправляются с помощью job'ов ETL (Extraction, Transformation и Load - извлечение, трансформация и загрузка), которые загружают данные в хранилище данных. Однако даже в хранилище данных проблемы с целостностью данных - не редкость. SQL Server 2005 Analysis Services поддерживает кубы, построенные напрямую из оперативных хранилищ данных, и предлагает сложные элементы управления для обеспечения управления проблемами целостности данных, присущими таким системам. Администраторы баз данных могут сильно упростить свои задачи по управлению кубами, используя эти элементы. Типы проблем, связанных с целостностью данных В этой главе мы определим основные проблемы целостности данных. Для рассмотрения этих проблем мы будем использовать следующую реляционную модель: - Таблица фактов sales имеет внешний ключ product_id, который указывает на первичный ключ product_id в таблице измерений product. - Таблица измерений product имеет внешний ключ product_class_id, который указывает на первичный ключ product_class_id в таблице измерений product_class.
![]() Рис.1. Реляционная модель Ссылочная целостность Проблемы ссылочной целостности (Referential integrity, RI) являются наиболее типичными проблемами целостности данных в реляционных базах данных. Ошибка RI - это по существу нарушение ограничения первичный ключ-внешний ключ. Например: - Таблица фактов sales имеет запись с таким значением product_id, которое не существует в таблице измерений product. - Таблица измерений product имеет такое значение product_class_id, которое не существует в таблице измерений product_class. Значения NULL Хотя значения NULL обычны и даже приветствуются в реляционных базах данных, они требуют особой обработки в Analysis Services. Например: - Таблица фактов sales имеет запись со значением NULL в столбцах store_sales, store_cost и unit_sales. Это может быть интерпретировано или как транзакция с нулевыми продажами, или как несуществующая транзакция. Результаты запроса MDX (NON EMPTY) будут различаться в зависимости от интерпретации. - Таблица фактов sales имеет запись со значением NULL в столбце product_id. Хотя это и не является ошибкой ссылочной целостности в реляционной базе данных, эту проблему целостности данных Analysis Services должен обрабатывать. - Таблица product имеет запись со значением NULL в столбце product_name. Так как этот столбец передает ключи и имена товаров в Analysis Services, то значение NULL может быть оставлено как есть, сконвертировано в пустую строку, и т.д. Ошибки в связяхAnalysis Services позволяет определять связи между атрибутами измерений. Например, измерение Product может иметь отношение "многие-к-одному" между столбцами brand_name и product_class_id. Рассмотрим две записи в таблице product со следующими значениями столбцов:
Это нарушение связи "многие-к-одному", так как значение столбца brand_name "Best Choice" имеет два связанных с ним значения столбца product_class_id. ПРОДОЛЖЕНИЕ СЛЕДУЕТ
How to resolve a deadlock without your DBA Самые популярные темы недели
Задай вопрос разработчику MsSQL!
Переезд сервера в другой домен |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться |
В избранное | ||