Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Отстраняване на проблеми с I/O тесните места на диска

Вашият сървър страда ли от прекомерен брой I/O сигнали? Ако е така, трябва ли да се притеснявате за влошаване на производителността на сървъра? Как най-добре да диагностицираме основния проблем и да разбием тесните места за I/O?

Алармата за време на спиране на I/O на Spotlight Cloud е добър индикатор за тесни места в I/O. Повишава се, когато средното време на изчакване за операция на файл с база данни надвиши прага за аларма. Алармата използва данни от sys.dm_io_virtual_file_stats DMV за своите изчисления. Той използва средна стойност, получена след пет колекции през последните 15 минути, така че няма да бъдете предупредени при случайни скокове. Описанието на алармата включва името на виртуалния файл на базата данни, името на базата данни и средното време на изчакване за I/O операция.

Четири лесни предложения за диагностициране на проблеми, свързани с I/O в Spotlight Cloud:

1. Проверете какво допринася за консумацията на I/O.

Консумацията на I/O е признак за забавяне на дисковите подсистеми, което може да бъде причинено от натиска на паметта или процесора, лошо написани заявки или липса на добра комбинация от индекси. В момента на алармата:

Първо се възползвайте от десния панел Properties на страницата Alarms, за да видите свързаните с Smart Alarms данни:
1. Подробности за алармата, включително името на файла, средното време за изчакване на файла и продължителността на алармата

2. Анализирайте събраните данни, изобразени на графика на тенденцията, обхванати през последните няколко часа



След това диагностицирайте проблема, като натиснете бутона Диагностика. Това ще ви отведе до таблото за управление на I/O by File, фокусирано върху стресирания файл. Можете да използвате това и други табла за управление, за да диагностицирате допълнително:

1. I/O by File – Идентифицирайте файловете, пряко засегнати от I/O
2. Анализатор на работното натоварване - Най-добрите SQL изрази и TSQL пакет, консумиращ най-много I/O
3. Сесии – Сесии в момент с дискова активност
4. Проверка на състоянието - Прегледайте дали има липсващи индекси


2. Проверете файловете, които чакат за I/O операции.

Таблото за управление на I/O by File идентифицира файловете, чакащи за I/O операции. Разгледайте следната I/O статистика:
1. Обърнете внимание на колоните, свързани с I/O:I/O скорости, скорости на четене/запис и скорост на изчакване

2. Сортирайте файловете по тяхното средно изчакване за /IO, като натиснете върху синия падащ списък директно над колоната за логически файл.

3. Вижте дейността Четене и Запис през последния час, генерирана във файла, показан на панелите вдясно.

4. По желание разширете времевата рамка, за да проверите дали това е нормално поведение на файла.

5. Ако видите редица файлове с течение на времето, страдащи от същия проблем и споделяте местоположението или диска, помислете за коригиране на тяхното местоположение и сравнете споровете за IO между дискове или местоположения, за да облекчите проблемите със закъснението на диска.


6. В случай, че файловете на базата данни Tempdb са важен фактор, използвайте таблото за използване на TempDB, за да видите дейността срещу базата данни:

а. Tempdb файлове с база данни и тяхната статистика
б. Сесии, използващи tempdb
° С. Топ таблици и индекси, създадени в tempdb



3. Намерете SQL изрази, които може да извършват големи количества логически I/O.

Таблото за управление на Workload Analyzer показва най-големия I/O консумиращ SQL:

1. Щракнете върху I/O ресурса в горния банер и разгънете възела на SQL изявление от дървото на измеренията, за да видите първите 25 SQL консумиращи I/O през периода от време.

2. Фокусирайте се върху едно изявление и разгънете панела със свойства на SQL оператор от дясната страна, за да видите подробностите за SQL и плана на заявката.

3. Заредете SQL израза в SSMS, като използвате опцията „Отваряне в SSMS“ и използвайте инструмента за плъгин Tuning Pack, за да анализирате плана или да го накарате да пренапише по-оптимално изявление.


4. Фокусирайте се върху възела „SQL изявление“ на дървото на измеренията, за да изброите SQL изразите. Сортирайте сесиите по IO Wait или Logical Reads. Използвайте панела Сравнение с родител отдясно, за да сравните изчакването на IO на един SQL с останалата част от SQL в екземпляра, който поема IO. Логическият I/O може да доведе до ненужен физически I/O.


4. Проверете кои сесии на SQL Server генерират голямо количество дискова активност.

Таблото за управление на сесиите показва сесиите, отворени в екземпляра. За да видите сесиите, които генерират голямо количество дискова активност, проверете свързаните с I/O статистики и сортирайте по тях.
1. Статистическите данни, свързани с I/O, ви насочват в правилната посока:общо I/O, логически четения, физически четения и заявка за I/O

2. Панелът отдясно на раздела Сесия показва допълнителни статистически данни заедно с основния SQL



Използвайте панела Tempdb, за да видите сесиите, използващи базата данни Tempdb:
1. Използвайте таблото за управление на Tempdb, за да идентифицирате сесиите и обектите, използващи базата данни

2. Използвайте таблото за използване на Tempdb, за да видите всички сесии за даден период


Поемете отговорността за I/O латентността, като използвате възможностите за диагностика на Spotlight Cloud!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразуване на ‘time’ в ‘datetime2’ в SQL Server (T-SQL примери)

  2. Проучване на различните ограничения в SQL Server

  3. Външният ключ подобрява ли ефективността на заявката?

  4. Възстановяване на паралелно архивиране на SQL Server -2

  5. Добавете уникално ограничение към комбинация от две колони