У меня есть один из тех странных вопросов, которые практически неразрешимы (единственный способ решить их - выбросить технологию и купить новые). У меня было несколько экспертов (около 10 консультантов), которые должны были приехать и устранить мою проблему - без решения - поэтому я решил опубликовать ее здесь. [Пожалуйста, не стреляйте в меня, потому что это было сделано так называемыми экспертами !! Занимаюсь переделкой его в 64-битную версию :)]
У меня следующая проблема:
Окружающая среда:
Windows Server 2003 x86 Enterprise (32-разрядная)
16 ГБ RAM
Fibre Channel 4 ГБ EMC SAN Storage (разделы 500 ГБ, ОС отделена от данных)
SQL Server 2000 SP4 x86 Enterprise (32-разрядная версия)
SAP BusinessObjects XI 3.1 (Java, Apache, Tomcat)
«бизнес-базы данных с юниверсами и бизнес-отчетами»
McAfee Anti-Virus Enterprise
Конфиг:
/ PAE / 3GB = boot.ini
SQL = использовать AWE, Minmem = 4 ГБ, Maxmem = 12 ГБ
Загружены последние патчи, в том числе тот, в котором SQL-адрес больше памяти
sqlserver.exe отображает 130,123 КБ в диспетчере задач (красные огни!!)
Проблема: Я могу вытащить сервер, используя все ядра, максимум до 100% (см. Снимок экрана), вытащив один отчет. На данный момент у нас около 200 пользователей, подключающихся с помощью различных программ клиентских баз данных, а также отчетов BO.
Я подобрал это в ProcessExplorer Прерывания на Аппаратные прерывания являются 80% при запуске этого запроса. Я также заметил, что SQL Server показывает системные процессы, которые находятся в рабочем состоянии, чтобы иметь PAGELATCH_SH
Я пробовал "Google" последние две недели без особых результатов. Я лично считаю, что базовая база данных и запросы, производимые BO (вселенные, построенные на реляционных структурах), вызывают такое огромное количество наборов данных, которые передаются из SQL в BO. Отчет BO представляет собой одностраничный просмотрщик.
Скриншот: Скриншот терминальных сессий (Разрешение 2560x1440)
Я был бы очень признателен за человека, который мог бы дать ценную информацию, почему это происходит. У нас есть эта проблема в течение последних 3 месяцев, и базы данных продолжают увеличиваться в размере.
Спасибо
sqlserver.exe отображает 130,123 КБ в диспетчере задач (красный свет !!)
Это нормально для машин x86, использующих AWE. Используйте Perfmon, чтобы узнать, сколько памяти фактически использует SQL Server.
Посмотрите на план выполнения запроса, выполняемого BO, и посмотрите, нужно ли добавлять индексы в таблицы для повышения производительности.
Когда ЦП работает на 100%, на каком% работает ЦП ядра (числа из диспетчера задач в порядке)?
Я только что видел снимок экрана, когда Windows использует 80-90% процессорного времени для памяти ядра, это означает, что она тратит все свое время на управление расширенной памятью.