Блог


Последние записи


Теги

Информация

MS SQL Server - дело тонкое...


Изменения в SQL Server 2012, связанные с диспетчером памяти

По материалам статьи Juergen Thomas: Memory Manager surface area changes in SQL Server 2012 в блоге SQLOS Team
Автор: G Bowerman
Перевод: Александр Гладченко
Технический редактор: Ирина Наумова

Множество изменений было внесено в компоненты диспетчера памяти SQLOS новой версии SQL Server 2012. Эти изменения можно обнаружить в динамических административных представлениях (DMV) объектов памяти, в команде выдачи статуса объектов памяти DBCC и в счётчиках производительности. Изменения в диспетчере памяти позволяют теперь получать более точную информацию о потреблении памяти сервером и помогают SQL Server более эффективно управлять распределением страниц, а также существенно улучшают обработку и отслеживание распределения памяти между узлами NUMA. Задача этой статьи собрать эти изменения в одном месте, чтобы можно было быстро найти ссылки на подробную информацию о деталях, относящихся к новшествам диспетчера памяти.
Некоторые из этих изменений призваны были стандартизировать измерения счётчиков памяти в килобайтах, а не в байтах или страницах, логически продолжая тот процесс, который уже был начат в более ранних версиях. Сами процедуры подсчёта использования памяти теперь стали более релевантными и достоверными, поскольку модули, отвечающие за одностраничные и многостраничные распределения, были заменены одним модулем, который теперь заведует распределением страниц любого размера и любого числа этих страниц. Также консолидация распределения страниц разного размера в одном модуле позволила придать целостный и законченный вид счётчикам производительности, отражающим распределение страниц.
Другие изменения относятся к изменению места диспетчера памяти в модели интерфейсов взаимодействия с операционной системой. Он теперь играет центральную роль, обеспечивая распределение страниц практически для всех компонент.

Читать весь текст статьи: http://msmvps.com/blogs/gladchenko/archive/2012/09/03/1815794.aspx
добавлено: 04 сен 12 просмотры: 2917, комментарии: 0



Tips for DBA: Экспресс-диагностика достаточности памяти системе и экземпляру SQL Server


По ссылке в сценарии можно найти статью, которая меня вдохновила написать пример сценария, который может оказаться полезным для экспресс-диагностики проблем распределения оперативной и виртуальной памяти для нужд запрашиваемого экземпляра SQL Server и операционной системы. Я оставил только реальные (как мне думается) сценарии, которые могут случиться с памятью. Прогон на моих серверах вроде показал правдивость обнаруженного. Посмотрите у себя? Обсудить результаты и сам сценарий можно в коментариях.



-- Быстрый тест проблем с памятью
-- По мотивам: http://bit.ly/LkT05M
WITH RingBufferXML
AS(SELECT CAST(Record AS XML) AS RBR FROM sys .dm_os_ring_buffers
   WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR'
  )
SELECT DISTINCT 'Зафиксированы проблемы' =
          CASE
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 0 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 2
                    THEN 'Недостаточно физической памяти для системы'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 0 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 4
                    THEN 'Недостаточно виртуальной памяти для системы' 
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 2 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 0
                    THEN'Недостаточно физической памяти для запросов'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 4 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]', 'tinyint')  = 4
                    THEN 'Недостаточно виртуальной памяти для запросов и системы'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 2 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 4
                    THEN 'Недостаточно виртуальной памяти для системы и физической для запросов'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 2 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]', 'tinyint')  = 2

                    THEN 'Недостаточно физической памяти для системы и запросов'
         END
FROM        RingBufferXML
CROSS APPLY RingBufferXML.RBR.nodes ('Record') Record (XMLRecord)
WHERE       XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint') IN (0,2,4) AND
            XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]' ,'tinyint') IN (0,2,4) AND
            XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint') +
            XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]' ,'tinyint') > 0

добавлено: 20 июн 12 просмотры: 2979, комментарии: 4



Оптимизации ввода-вывода для нагруженных баз данных

http://www.techdays.ru/videos/4314.html
В докладе рассмотрены вопросы оборудования дисковых подсистем для задач SQL Server в приложениях хранилищ данных и OLTP нагрузки. Будут рассмотрены варианты использования сетей на основе Fibre Channel и коммутаторов SAN. Вы увидите какие ограничения могут накладывать на производительность ввода-вывода разные компоненты дисковой подсистемы. Будут даны основы современных дисковых подсистем и их важные особенности с точки зрения обслуживания нагрузки SQL Server. Будет показано, на какие параметры конфигурации СХД, операционной системы и СУБД нужно обращать внимание. В презентации будут представлены несколько примеров, демонстрирующих возможности современных дисковых подсистем.



Другие доклады
Конференция "24 Hours of PASS. Russian Edition"
http://www.techdays.ru/videos/24 HOP

добавлено: 02 май 12 просмотры: 2899, комментарии: 1



Изменения в автоматическом обновлении статистики SQL Server -T2371

По материалам статьи Juergen Thomas: Changes to automatic update statistics in SQL Server - traceflag 2371
Перевод: Александр Гладченко
Технический редактор: Ирина Наумова

C 1998 года, когда вышел SQL Server 7.0, базовым принципом дизайна автоматического обновления статистики было отслеживание количества изменений в таблице. Когда количество изменений в таблице превышало определённый порог (процент), выполнялось автоматическое обновление статистики.
В последующих версиях, вплоть до SQL Server 2005, в дизайне сбора статистической информации произошли некоторые изменения, например, была добавлена возможность асинхронного обновления статистики. Кроме этого, в SQL Server была добавлена возможность оптимизации исполнения запросов за счёт отслеживания изменений на уровне столбцов с целью предоставления возможности обновления только статистики по селективности строк таблицы. Для получения более подробной информации можно почитать более полный обзор статистических данных, используемых оптимизатором запросов, который доступен здесь: http://msdn.microsoft.com/en-us/library/dd535534(SQL.100).aspx

Изначально, в версиях SQL Server 2008 и 2008 R2 не было никаких крупных изменений в дизайне сбора и использования статистики. Появившийся ещё во времена разработки SQL Server 7.0 алгоритм, основанный на фиксированном пороговом значении, остался без существенных изменений. Превышение этого порога вызывало автоматическое обновление статистики. Пороговое значение, используемое изначально, равнялось 20%, и оно оставалось таким во всех выпусках SQL Server, которые до недавнего времени появлялись на рынке. Это означает, что до недавнего времени все выпуски SQL Server инициировали процедуру автоматического обновления статистики, если для столбца таблицы были зафиксированы изменения, которые затрагивали более 20% от числа строк таблицы. Обновлению подлежит индекс на основе B-дерева, который включает такой столбец в качестве первого столбца индекса, или если существует отдельная статистика для этого столбца среди относящихся к таблице статистик столбцов. Индексы, в которых не участвует этот столбец в качестве первого (ведущего) столбца индекса, не нуждаются в обновлении статистики. Ещё одно ограничение, это реализация в коде SQL Server 7.0 специальных защитных мер для маленьких таблиц от частого обновления статистики. Требуется, чтобы в таблице было, по меньшей мере, 500 строк (6 строк для временных таблиц), тогда автоматический пересчёт статистики у этой таблицы будет происходить после превышения двадцатипроцентного порога изменений.

Читать дальше: http://bit.ly/xu4z2V
добавлено: 27 янв 12 просмотры: 3032, комментарии: 3



Повышение пропускной способности сетевых интерфейсов для SQL Server с помощью настройки RSS

По материалам статьи: Кун Ченг (Kun Cheng) Maximizing SQL Server Throughput with RSS Tuning



Рецензенты: Thomas Kejser, Curt Peterson, James Podgorski, Christian Martinez, Mike Ruthruff
Перевод: Александр Гладченко
Технические редакторы перевода: Алексей Халяко, Ирина Наумова

Функциональность Receive-Side Scaling (RSS) впервые появилась в Windows 2003. Это нововведение было призвано повысить возможности масштабируемости операционной системы Windows, и этим предоставить новые возможности по обслуживанию большого сетевого трафика. Такой трафик характерен для систем, где SQL Server обслуживает OLTP нагрузку. Подробное описание того, какие усовершенствования RSS получила операционная система Windows 2008, можно узнать из отчёта - Receive-Side Scaling Enhancements in Windows Server 2008 и в блоге - Scaling Heavy Network Traffic with Windows.



Продолжение

добавлено: 17 окт 11 просмотры: 2091, комментарии: 1



Счётчики производительности, позволяющие идентифицировать узкие места дисковой подсистемы SQL Server

По материалам статьи Маттео Лорини (Matteo Lorini): «Perfmon Counters to Identify SQL Server Disk Bottlenecks».

Описание проблемы

Известны несколько статей об обнаружении проблем ввода-вывода, связанных с SQL Server. Существуют разные методы поиска «узких мест» ввода-вывода, мы же сконцентрируемся тут на вопросе: Какие счётчики производительности необходимы для того, чтобы быстро понять, являются ли диски «узким местом»?

http://msmvps.com/blogs/gladchenko/archive/2011/09/21/1799948.aspx
добавлено: 22 сен 11 просмотры: 6250, комментарии: 0



Стратегия управления глубиной очереди ввода-вывода для достижения пиковой производительности

По материалам статьи Джо Чанг (Joe Chang): I/O Queue Depth Strategy for Peak Performance (IO Queue Depth Strategy)

Перевод: Александр Гладченко
Технический редактор: Ирина Наумова
Литературный редактор: Мария Гладченко

В большинстве случаев для SQL Server применяются незамысловатые модели управления глубиной очередей ввода-вывода. Ниже представлены основанные на практике рекомендации по оптимизации очереди ввода-вывода, при использовании более развитых моделей дисковых подсистем, SSD - дисков и высокопроизводительных систем хранения.


http://msmvps.com/blogs/gladchenko/archive/2011/09/08/1799133.aspx
добавлено: 16 сен 11 просмотры: 5406, комментарии: 0



Cumulative Update package 7 for SQL Server 2008 R2





18 Апреля 2011г. стали доступны для заказа файлы нового кумулятивного обновления №7 для SQL Server 2008 R2.


читать дальше...
добавлено: 19 апр 11 просмотры: 4619, комментарии: 0



Tips for DBA: sys.dm_os_wait_stats и правильный способ сбора статистика ожиданий

Статистика ожидания является очень удобным и практичным инструментом для выявления узких мест в работе SQL Server. Познакомиться со списком существующих типов ожиданий и рекомендациями по реакции на отклонения ожиданий от нормы можно в описании динамического административного представления sys.dm_os_wait_stats

Для анализа статистики ожиданий необходимо собирать эту статистику в то время, в которое проявляются проблемы, либо обслуживается нагрузка, которую необходимо исследовать. Для этого обращение непосредственно к sys.dm_os_wait_stats не очень подходит, т.к. там накоплена статистика с момента последнего запуска сервера, либо с момента последней очистки результатов динамического представления командой: DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR);

Кроме того, результаты sys.dm_os_wait_stats потребуется ещё дополнительно агрегировать и форматировать, для удобства анализа статистики ожиданий.

Вашему вниманию предлагаются две процедуры, автор которых T. Davidson. После создания в базе данных master этих процедур , можно запустить вторую из них, например так:

    EXEC dbo.track_waitstats_2005 @num_samples=20
                                 ,@delay_interval=30
                               &nb...

читать дальше...
добавлено: 16 дек 10 просмотры: 3588, комментарии: 0



Платформа 2011: SQL Server 2K8R2 для многопроцессорных систем в задачах построения хранилищ

СКАЧАТЬ ПРЕЗЕНТАЦИЮ

Приглашаю вас посетить двенадцатую ежегодную конференцию Microsoft: Платформа 2011. В этом году конференция проходит 17-18 ноября в Центре международной торговли (Москва, Краснопресненская наб, 12). На конференции будет представлен мой доклад: SQL Server 2008 R2 для многопроцессорных систем в задачах построения хранилищ.

Согласно опубликованному расписанию, доклад состоится 18 ноября 2010г., в 11:00 - 12:00 (не опаздывайте :) в зале Амур, код доклада: BI405.

Краткая аннотация доклада:

    Очевидно, что системы хранилищ данных масштаба предприятия не строятся на десктопах. Многопроцессорные архитектуры являются основой построения корпоративных хранилищ. Вашему вниманию предлагается обзор современных возможностей SQL Server 2008 R2 по поддержке многопроцессорных серверных архитектур. Презентация адресована опытным администраторам баз данных, знакомым с архитектурой SQLOS и современными платформами Intel и AMD. Вашему вниманию будет представлен обзор традиционной архитектуры NUMA и будут рассмотрены особенности NUMA-like архитектур. Для системных администраторов будет интересно ознакомиться с развитием поддержки NUMA в таких операционных системах, как Windows 2003, Windows 2008 и Windows 2008 R2. Вы узнаете о том, что такое NUMA I/O, Hard-NUMA и Soft-NUMA. Познакомитесь с особенностями взаимодействия SQLOS и NUMA и с тем, насколько применима Soft-NUMA для Non-NUMA серверов. А также вы узнаете, как настраивать NUMA для большого числа процессоров, как привязывать порты сетевых интерфейсов к процессорам и как управлять максимальным уровнем параллелизма в NUMA системах.

Доклад основан на материалах моей статьи, победившей в конкурсе, посвящённом выходу Microsoft SQL Server 2008 R2, и организованном порталом SQL.ru совместно с ITband.ru, форумами Microsoft TechNet, и при информационной поддержке sql-ex.ru.

Предлагаю всем, кто уже знаком с этой статьёй, и собирается посетить доклад на Платформе, высказать свои пожелания и вопросы, которые желательно осветить подробней. Я ещё не начал верстать презентацию, а это будет сильно укороченная версия статьи (без воды и экскурсов в историю) с картинками (которых в статье явно не хватает), т.ч. могу учесть всё, что вы пожелаете. Давайте готовить презентацию вместе ;)

Лучше всего оставлять вопросы и пожелания прямо тут, в моём блоге. В качестве альтернативы, используйте mssqlhelp@rambler.ru

Для наиболее активных комментаторов, у меня заготовлены призы - 6 экземпляров нашего сборника статей про репликацию. Призы можно будет получить на Платформе, прямо после доклада или в зоне экспертов.

Официальный блог конференции "Платформа"

Другие доклады в тему:

читать дальше...
добавлено: 02 ноя 10 просмотры: 2017, комментарии: 0