Счетчики производительности SQL Server

Счетчики производительности SQL Server

У меня есть экземпляр SQL Server 2005, который работает медленно. Этосвязьпоказывает детали perfmon. Поскольку я не анализирую этот тип данных ежедневно, мне было интересно, есть ли какие-то реальные проблемы с системой ввода-вывода.

Сервер использует SAN, а файлы DB и файлы Tempdb находятся на одном диске (E:). Не самая лучшая архитектура, но у меня нет контроля над сервером. Сервер используется для запуска отчетов с использованием Cognos, поэтому в основном это база данных только для чтения.

Спасибо

Вот забавный код, который нужно исправить.

select "tempSalesRpt_SubRgnDist"."Region" AS "Region",
   min("tempSalesRpt_SubRgnDist"."RegionName") AS "Region_Text"
from "SalesReporting"."dbo"."tempSalesRpt_SubRgnDist" "tempSalesRpt_SubRgnDist",
        (select "SecurityMaster"."Userid" AS "Userid", "SecurityMaster"."SoldTo" AS "SoldTo"
        from "SalesReporting"."dbo"."SecurityMaster" "SecurityMaster" 
        where "SecurityMaster"."Userid" = lower ('USTGACA')) "SecurityMaster4" 
where NOT "SecurityMaster4"."Userid" is null 
    and "tempSalesRpt_SubRgnDist"."SoldTo" ="SecurityMaster4"."SoldTo" 
    group by "tempSalesRpt_SubRgnDist"."Region" 
    order by 1 asc , 2 asc

Таблица securitymaster доступна при каждом запросе, и именно эта таблица в последнее время увеличилась.

Я бы предположил, что этот код не поддается sarg-анализу, но план выполнения показывает, что используются поиск по индексу и поиск по ключу.

Я вижу, что некоторые новые индексы могли бы помочь, но нужно копать глубже.

решение1

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

Начните с просмотра индексов в базе данных и посмотрите, нужно ли создавать новые индексы. Это увеличит размер вашей базы данных, но вы увидите сокращение трафика на диск и уменьшение времени выполнения запроса.

Вы можете начать с просмотра планов выполнения ваших длительных запросов, которые подскажут вам, где необходимо добавить индексы.

решение2

В дополнение к ответу Денни, у вас на компьютере около 5 ГБ свободной памяти. Правильно ли вы настроили память SQL?

Если у вас 32-битная система, вы можете выделить больше памяти, включив AWE:

http://technet.microsoft.com/en-us/library/ms190673(SQL.90).aspx

SQL будет использовать эту дополнительную память для кэширования большего количества таблиц/индексов базы данных (при условии, что размер вашей базы данных превышает объем свободной памяти).

Связанный контент