Нульові рядки повертаються на запит DMV sys.dm_os_performance_counters


9

У мене є користувач, який працює SQL Server 2014 Standard Edition (RTM)з SYSADMINдозволами стану перегляду сервера, але коли я виконую DMV, sys.dm_os_performance_countersвін не повертає записів.

Будь-яка ідея, що не так з дозволами?

введіть тут опис зображення

Вихід версії @@:

Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 20 лютого 2014 20:04:26 Авторські права (c) Microsoft Corporation Standard Edition (64-розрядна версія) на Windows NT 6.3 (збірка 9600:) (Hypervisor)


Цілком можливо, що під час встановлення лічильники реєстрів не встановлюються. Якщо у користувача є sysadminдозвіл, він не вимагає view server stateдозволу на запуск DMV, включеного в роль sysadmin. У світлі вище, якщо рядки не повернуті, це означає, що лічильники парфмонів не встановлені.
Шанкі

@Shanky Не завжди є ще 2 можливі причини. У мене особисто були причини реєстру (у жорсткому середовищі безпеки, де, мабуть, зміни реєстру під час встановлення не пройшли належним чином)
реагує

Відповіді:


4

Якщо ви впевнені, що у відповідного користувача є View Server State(і це схоже на екрані, який він робить).

Тоді є низка причин, раніше розміщених у блозі msdn. Від:

  1. Помилка налаштування об'єктів та лічильників під час встановлення SQL Server.
  2. Суміш 64 та 32-бітних платформ.
  3. Дозволи до реєстру були скасовані

Щоб вирішити це питання, ми можемо використовувати ті ж самі кроки, викладені в інструкціях щодо перевстановлення лічильників ефективності в інший пост обміну стеками:

Використовуючи підвищений командний рядок адміністратора, виконайте наступні дії.

  1. Змініть шлях до BINNкаталогу екземпляра SQL Server, який ви хочете виправити.
    (Приклад: C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn)
  2. Виконати, unlodctr <<REGISTERED SERVER NAME>>
    наприклад: unlodctr MSSQL$SQL2008або SQLAgent$SQL2008...
  3. Виконати, lodctr /T:<<perf-sql* matching the counters you desire to load>>
    наприклад: perf-MSSQL$SQL2008sqlctr.iniабо perf-SQLAgent$SQL2008sqlagtctr.iniдля SQLAgent. /TВажливо завантажити постачальник лічильника продуктивності SQL Server в якості надійного постачальника .
  4. Цикл віддаленої служби реєстру:
    net stop "Remote Registry"потімnet start "Remote Registry"
  5. Примушуйте синхронізацію WMI, використовуючи, winmgmt /resyncperfctr "<<PID>>"
    де PID - це ідентифікатор процесу WinPriv.exe(ви можете отримати це у диспетчері завдань)

Також може знадобитися таке:

  • Переконайтеся, що правильні дозволи безпеки були надані HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
    ключу реєстру:

    1. Надайте дозволи на повний контроль в обліковому записі власника.
    2. Надайте дозволи на повний контроль в обліковому записі адміністраторів.
    3. Надання дозволу на читання адміністраторам SQL у цьому полі / Вузлі.
    4. Надайте дозволи на повний контроль в обліковому записі системи

цей метод для SQL Server 2008 - це той самий 2014 рік?
AA.SC

@ AA.SC Так, метод AFAIK не змінився.
Reaces

Клієнт @@ Reaces оновив свою системну RTM до SP1, це вирішило проблему.
AA.SC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.