SQL Server синхронізації значень можуть бути несумісними під час використання утиліти або технології, змінити ЦП частоти


Загальні відомості


Microsoft SQL Server 2005 використовує процесор із високою роздільною здатністю лічильник, щоб забезпечити мікросекунди часу можливості. Мікросекунди-це одна мільйонна другий (або одну тисячну мілісекунди). Однак, SQL Server синхронізації значень може бути неправильне використання технології, змінити ЦП частоти. Наприклад, ця проблема може виникнути під час використання в будь-який з таких технологій:
  • CPU stepping
  • AMD Cool'n "тихий технології
  • Різні живлення, схеми
Ця стаття містить, інструкції та отримати додаткові відомості, які допоможуть вирішити цю проблему.

Причини


Під час використання твердження статистичні дані, значення часу для відображення сервера аналізу та час збирання, ви можете отримати, неправильні параметри. Наприклад, можна помітити, що проміжок часу, час виконання SQL Server є значно більші, ніж час ЦП. Ця проблема може вплинути на точність налаштування продуктивності. Ця проблема виникає, під час використання, однією з технологій, перелічених у розділі "Загальні відомості", на сервері.

Причина


Ця проблема виникає в тому, що процесор частоти змінюються під час використання цих технологій. SQL Server 2005 використовує процесор із високою роздільною здатністю лічильник, щоб забезпечити мікросекунди часу можливості. Змінення для економії енергії а також зменшити потужність процесора частоти обчислюваний тривалістю можливо неправильні.

Вирішення


Відомості про пакет оновлень

Щоб вирішити цю проблему, отримати найновіший пакет оновлень для SQL Server 2005. Щоб отримати додаткові відомості, клацніть номер статті в базі знань Microsoft:
913089 як отримати найновіший пакет оновлень для SQL Server 2005
Примітка. Пакета оновлень 3 для SQL Server 2005 або пізнішої версії пакетів оновлень позначка часу процесора не використовується. Ці версії SQL Server 2005, використовуйте надійність таймер із до максимальної точності 1 мілісекунди.

Стан


Цю проблему усунуто в пакета оновлень 3 для SQL Server 2005.

Виправлення помилок


SQL Server 2005, потрібно відомі та стабільної роботи даних точки відновлення для виконання, налаштування точні продуктивності. Якщо на комп'ютері ввімкнуто динамічного відповідає використовуваній частота процесора, їх можна вимкнути так ЦП підтримувати постійний частоти швидкістю, перш ніж почати відстежувати й налаштування продуктивності для SQL Server. Для цього, скористайтеся нижченаведеними способами.

Настроювання схеми живлення на комп'ютері, щоб примусово процесорів, тоді максимально частотою

Щоб це зробити, виконайте такі дії:
  1. Меню Пуск, натисніть запустити, введіть powercfg. cplі натисніть кнопку OK.
  2. У діалоговому вікні " Властивості електроживлення " виберіть у списку схеми живлення Завжди .
  3. Натисніть кнопку OK.
На перехід виникає. На перехід – це розбіжності між значеннями з частотою процесора. Щоб отримати додаткові відомості див. розділ "Перехід". У цьому випадку перезавантажте Microsoft Windows, щоб відновити синхронізацію частоти всіх процесорів, після змінення схеми живлення.

Якщо не перезавантажити комп'ютер, увімкніть, SQL Server споріднена процесора, щоб запобігти SQL Server, робочі потоки перехід між процесорами. При цьому не потрібно перезавантажити комп'ютер, навіть якщо в розбіжності між значеннями з частотою процесора. Щоб увімкнути споріднена з процесором SQL Server для всіх процесорів на сервері, потрібно використовувати різні маски, залежно від кількості логічних процесорів, які знаходяться на сервері.

Наведена нижче таблиця містить, наприклад сценарії.
Процесор номерОператори Увімкнення процесор близькість
02-процесорівExec-sp_configure "маска відповідності", 0x00000003
GO
Настройте
GO
04-процесорівExec-sp_configure "маска відповідності", 0x0000000F
GO
Настройте
GO
08-процесорівExec-sp_configure "маска відповідності", 0x000000FF
GO
Настройте
GO
16-процесорівExec-sp_configure "маска відповідності", 0x0000FFFF
GO
Настройте
GO
32-процесорівExec-sp_configure "маска відповідності", 0xFFFFFFFF
GO
Настройте
GO
Примітка. Це може бути недостатньо для вимкнення частота процесора зміни функцій, на рівні BIOS. Різноманітні утиліти для сторонніх виробників, можна змінити ЦП частоти. Деякі реалізації увімкнути частота зміни, навіть коли ЦП під максимальної потужності схеми настройки. У такому випадку необхідно вимкнути ці сторонніх утиліт під час налаштування SQL Server 2005 продуктивності.

Використання утиліти сторонніх розробників, а також драйвери, синхронізації ЦП частоти і процесор годинник, лічильники

В окремих випадках, система може знадобитися оновлення від виробника для вирішення проблеми з частотою процесора. Це варто перевірити систему останні оновлення мікрокоманд, BIOS та мікропрограми, якщо є підозра, що система може мати проблеми.

Додаткові відомості


Microsoft SQL Server 2000 і раніших версіях SQL Server, використовуйте механізми часу Windows. За допомогою мілісекунди точність значення часу механізмів. Як правило, це точність 10 до 15 пані Однак, точність може бути як 55 ms. Запити на SQL Server, виконайте часто в межах одного значний мілісекунди або мікросекунди часу, що охоплює. Ця точність вимагає, таймер з високою роздільною здатністю. Таким чином, ці версії SQL Server, звіт про тривалість деякі запити, як 0 пані таким чином, важко монітору та настроювання SQL Server продуктивності в попередніх версіях SQL Server.

SQL Server 2005, підвищення точності за допомогою високою роздільною здатністю ЦП лічильника для забезпечення мікросекунди часу можливості. Під час використання технології, перелічених у розділі "Загальні відомості", значення часу, про які повідомляють, може бути неправильна.

Ця проблема може вплинути на наступні об'єкти та функції:
  • Трасування подій:
    • Увага події
    • У вузлі збережених процедур
    • У вузлі TSQL
    • У вузлі об'єктів
    • У вузлі операції
  • Подання динамічного керування:
    • sys.dm_exec_query_stats
    • sys.dm_exec_requests
    • sys.dm_exec_sessions
    • sys.dm_io_pending_io_requests

    • sys.dm_os_ring_buffers
    • sys.dm_os_sys_info
    • sys.dm_io_virtual_file_stats
    • sys.dm_os_wait_stats
  • Твердження статистичні дані, значення часу.
  • Sysprocesses системної таблиці
Після інсталяції SQL Server 2005 з пакетом оновлень 2 (SP2), SQL Server журналів повідомлення про помилку в журналі помилок, коли SQL Server визначає, що таймери високою роздільною здатністю, синхронізації ЦП, між. Повідомлення про помилку вказує, що продуктивність часу не може правильно і користувачам слід використовувати даних про продуктивність обережно.

Текст повідомлення про помилку подібне до одного з таких повідомлень про помилку:
Повідомлення про помилку 1
Лічильник штамп часу процесора на планувальник id, 2, не синхронізовано з іншими процесорів.
Повідомлення про помилку 2
Частоти штамп часу для процесора змінюється від 191469 до 1794177-тактів системного за мілісекунди. Нова частота, будуть використовуватися.
SQL Server використовує інструкція лічильник позначка реального часу (RDTSC) придбати лічильник 64-розрядних ЦП. Це значення можна розділити, частоту процесора перетворення значення мілісекунди значення. Синхронізація варіанти, може виникнути під час зміни з частота процесора або на перехід.

CPU stepping

CPU stepping визначено як умисне зміни частоти процесора. CPU stepping також відомий як Intel SpeedStep технології або AMD PowerNow! технології. Під час CPU stepping виникає швидкість процесора може змінювати кроком в межах 50 МГц для економії енергії а також зменшити потужність. Процесори, які в межах одного вузла доступу (NUMA) не форму пам'яті не самостійно змінити частоту.

У нижченаведеній таблиці показано, як CPU stepping-зміни можуть вплинути на час обчислення.
ДіяRDTSC-тактів системногоТактів системного, за мілісекунди (частота)Стіни годинником.
Запустити пакет12000
Частота крок вниз2001001ms
Кінець пакета.5003ms
ПІДСУМКІВ5004ms
SQL Server, запис RDTSC тактів системного, на початку та завершення тактів системного RDTSC. Після цього SQL Server розділяє кліщі частоти значення.

У цьому прикладі нижче терміни обчислення виникнути, якщо використовується значення частоти 200 або 100:
  • Частота 200: 500/200 = 2.5 ms
  • Частота 100: 500-100 = 5 ms
Ні терміни обчислень збігається з фактичного стіни час 4 мс.

Якщо обчислення з віддаленого виклику процедур: завершення трасування подій, Тривалість і час завершення стовпці даних є визначається неправильно. У віддаленого виклику процедур: завершення події, відображає час початку стіни і процесора, установіть прапорець кількість. Отримання вище терміни роздільної здатності, ніж Windows, що забезпечує в SQL Server 2005, Тривалість і час завершення стовпці даних у SQL Server трасування обчислюються, за допомогою астрономічна лічильник ЦП. Кінець стовпця вираховується шляхом додавання Тривалість стовпця в колонці під час запуску . У цьому прикладі кінець стовпця визначається, неправильно, додавши 2,5 ms "або" 5 ms час початку.

Перехід

Перехід – це розбіжності, у ЦП годинника. Системи багатопроцесорних, може викликати різні значення годинник процесора ж точки часу. Хоча це не загальні, процесорів, можуть виникати годинник розділення через деякий час.

Нижче наведено приклад демонструє, як перехід можуть вплинути на Тривалість дані стовпця в трасування SQL Server результати. У прикладі мається на увазі, що частота процесора залишається постійний на 200 тактів системного, за мілісекунди. У нижченаведеній таблиці показано, події, у цьому випадку.
ДіяПередбачається, що Windows ЦППРОЦЕСОР 1 RDTSCЦП 2 RDTSCСтіни годинником.
Запустити пакет110011000
Кінець пакета.290019004-ms
ПІДСУМКІВ4-ms
SQL Server, запис RDTSC тактів системного, на початку точок і кінцевих точок. Після цього SQL Server розділяє RDTSC-тактів системного частоти значення. У цьому прикладі Windows передбачається, що SQL Server робочий потік, на двох різних процесорів. Робочий потік SQL Server, що послуги пакета, спочатку запущено на перший Центрального процесора (ЦП 1).

Проте пакета виконання перервано, підвищенням та SQL Server, надіслані виконання пакетного очікування черги. Після того, як SQL Server, надіслані робочий потік SQL Server, що послуги, цього пакета runnable чергу, Windows, відправлені теми, щоб запустити на другий Центрального процесора (ЦП 2). У SQL Server робочий потік завершено, що працює на ЦП 2. Через перехід на ЦП кінець установіть значення було захоплення ЦП 2, був 1900, замість 900. Цю проблему можна уникнути, якщо ввімкнуто споріднена з процесором SQL Server.

У цьому прикладі використовується такий обчислення часу:
  • Неправильні але повідомив, значення: (1900-100 = 1800) / 200 = 9 ms
  • Виправлення значення: (900 – 100 = 800) / 200 = 4 ms
Значення тривалості стовпці в віддаленого виклику процедур: завершення подій буде повідомляє, що 9 ms замість 4 пані, що цей результат більше ніж двічі, правильне значення 4 ms.

Повідомлення з попередженням перехід додається до SQL Server 2005, про те, що результати виконання, вище не може надійним. У деяких випадках виявлені SQL Server 2005, SP2 може повідомляти про попередження про такі:
  • Перехід на помилкове попередження.
  • Перехід може стати десятки мілісекунд, не спричиняє інтенсивне системи-ефект
Ви повинні бути ретельно під час оцінювання, результати продуктивності, і якщо порівняти продуктивності виходи на стіні годинник часу. Якщо немає ознак інші проблеми із продуктивністю, зазвичай можна пропустити перехід попереджувальне повідомлення. Наприклад, зазвичай можна ігнорувати попередження перехід, у таких ситуаціях:
  • Процеси працюють належним чином.
  • Запити на SQL Server не запущено в дивні durational моделі.
  • Ви не бачите інші вузькі місця ознаки.
Однак перш ніж ігнорувати перехід, попередження повідомлення, ми рекомендуємо, щоб звернутися до виробника, щоб переконатися, що не відомий RDTSC проблеми існує.

Ви можете використовувати прапор трасування 8033 (-T8033) для повернення до звітування поведінку в початковій версії SQL Server 2005 та SQL Server 2005 пакетом оновлень 1. Версії вихідного випуску SQL Server 2005 та SQL Server 2005 пакетом оновлень 1 не повідомляють про перехід попереджувальне повідомлення. Якщо ви працюєте в початковій версії SQL Server 2005 або SQL Server 2005, SP1 без проблем, зазвичай можна ігнорувати повідомлення.

Чому WAITFOR затримка твердження працюють належним чином? А періодичне системними процесами?

Час очікування механізми, не охоплених дизайн високою роздільною здатністю. SQL Server не використовує високою роздільною здатністю таймер таймер основі діяльності. Деякі заходи, час очікування на основі таймер зниження роздільної здатності, який використовує функцію GetTickCount . Ці дії для часу очікування, належать блокування очікування, WAITFOR затримка оператор та виявлення взаємоблокування.
Щоб отримати додаткові відомості клацніть номер статті в базі знань Microsoft Knowledge Base:

938448 сервері A-Windows Server 2003 можуть виникати штамп часу лічильник перехід на сервері, які використовують подвійним ядром AMD Opteron процесорів або багатопроцесорних AMD Opteron-процесорів

895980 програми, які використовують функцію QueryPerformanceCounter може виконувати погано у Windows Server 2003 та Windows XP

Продукти сторонніх виробників, які розглядаються в цій статті, розроблені компаніями, що не залежать від корпорації Майкрософт. Корпорація Майкрософт не надає жодних гарантій, неявних або інших, стосовно продуктивності або надійності цих продуктів.