Хорошо ... Мне было поручено выяснить, почему сайт интрасети работает медленно для компании малого и среднего размера (менее 200 человек). После трех дней поиска в сети. Я решил опубликовать то, на что смотрю. Вот что я знаю:
Сервер: HP DL380 Gen9 (новый) ОС: MS Server 2012 - работает Hyper-V ОЗУ: 32 ГБ
Server 2012 был создан для работы не более 2–3 виртуальных машин (на данный момент работает только одна виртуальная машина). 16 ГБ ОЗУ выделено для виртуального жесткого диска (не динамическая память). Том был создан для размещения виртуального жесткого диска. Внутри тома находится фиксированный виртуальный жесткий диск объемом 400 ГБ. Это. Внутри этого виртуального жесткого диска находится сервер 2008r2, на котором работает SQL 2008r2 и размещается интрасеть iis7.
Вот что происходит: страница в интрасети настроена для запуска нескольких хранимых процедур, которые выполняют некоторую проверку данных в других таблицах, а также вставляют данные (своего рода данные о посещаемости) после ввода данных о сотрудниках. Код выглядит так, как будто он создает и удаляет примерно 5 таблиц в процессе обработки данных. Страница запускается примерно за 1 минуту 50 секунд на новом сервере. Мне удалось достать старый сервер и запустить тест скорости: 14 секунд.
Я в недоумении ... многие сайты рекомендуют изменить код. Однако раньше все шло быстро. Я посмотрел на perfmon ... там все в хорошей форме.
Старый сервер - это 32-битный сервер 2003 года с SQL2000… новый, очевидно, 64-битный.
Любые идеи?
Решил мою собственную проблему ... мне потребовалось время, чтобы вернуться к этому. Надеюсь, это поможет другим.
Включен монитор активности SQL в разделе tools \ options => при запуске => Открыть обозреватель объектов и монитор активности.
Открыты недавние дорогие запросы. Щелкните правой кнопкой мыши по верхним запросам и выберите Показать план выполнения. Это показало отсутствие индекса для db. Добавлен индекс, щелкнув информацию о плане вверху. Добавлен index.
Надеюсь это поможет!