Высокопроизводительный компьютер выполняет SQL-запросы медленнее, чем обычный? - PullRequest
0 голосов
/ 15 апреля 2009

У нас есть машина с 8 процессорами 2,5 ГГц и 8 ГБ ОЗУ, которая выполняет запросы SQL медленнее, чем двухъядерный процессор 2,19 ГГц с 4 ГБ ОЗУ.

Почему это так, если Microsoft SQL Server 2000 установлен на обеих машинах?

Ответы [ 5 ]

2 голосов
/ 15 апреля 2009

Просто проверьте эти ссылки, чтобы указать, где находится узкое место

http://www.brentozar.com/sql/

Мне кажется, проблема в расположении диска и месте, где файлы базы данных SQL-сервера вызывают проблемы.

1 голос
/ 15 апреля 2009

Наше решение для многоядерных серверов (наше приложение выполняет много очень сложных запросов, которые, как правило, создают много потоков, и они иногда начинают блокировать и даже блокировать):

sp_configure 'show advanced options', 1
reconfigure
go
sp_configure 'max degree of parallelism', 1
reconfigure

Это не идеальное решение, но мы не заметили потери производительности для других действий.

Конечно, вам также следует оптимизировать расположение дисков и иногда ограничивать память сервера SQL для 64-битного сервера.

1 голос
/ 15 апреля 2009

Кроме того, у вас могут быть разные настройки SQL Server (назначение памяти и память AWE, потоки, максимальная память запросов, привязка процессора, повышение приоритета).

0 голосов
/ 15 апреля 2009

Имейте в виду, что, поскольку одна машина имеет больше процессоров, работающих на более высокой тактовой частоте и памяти, чем другая, она не обязательно решит данную проблему быстрее, чем другая.

Хотя вы не предоставляете подробности, возможно, что 8-процессорный компьютер имеет 8 разъемов, каждое с одноядерным процессором (скажем, Xeon эпохи P4) и 1 ГБ локальной (скажем, RDRAM) оперативной памяти. Вторая машина - это современный Core 2 Duo с 4 ГБ оперативной памяти DDR2.

Несмотря на то, что каждый процессор в машине № 1 имеет более высокую частоту, архитектура сетевой передачи намного медленнее тактовой, чем архитектура Core 2. Кроме того, если у вас небольшая загрузка ЦП, но интенсивная загрузка памяти, которая не помещается в 1 ГБ локально по отношению к ЦП на первом компьютере, доступ к памяти может быть намного дороже на первом компьютере (так как это должно произойти). через другие процессоры). Кроме того, DDR2 на процессоре Core 2 намного быстрее, чем RDRAM в Xeon.

Частота ЦП и общая память - это еще не все - архитектура ЦП, типы памяти, иерархия ЦП и памяти также имеют значение.

Конечно, это может быть гораздо более простой ответ, как предполагают другие ответы - SQL Server отключается, пытаясь распараллелить запрос.

0 голосов
/ 15 апреля 2009

Проверьте планы выполнения для одного и того же запроса на обеих машинах и, если возможно, опубликуйте его здесь.

Скорее всего, так и будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...