Влияет ли работа базы данных SQL Server 2005 на уровне совместимости 80 на производительность? - PullRequest
10 голосов
/ 10 августа 2008

Наше программное обеспечение должно работать на SQL Server 2000 и 2005. Чтобы упростить разработку, мы используем наши базы данных SQL Server 2005 на уровне совместимости 80. Однако производительность базы данных в SQL 2005 кажется ниже, чем в SQL 2000 в некоторых случаи (мы еще не подтвердили это с помощью тестов). Повысит ли повышение уровня совместимости до 90 производительность на серверах SQL 2005?

Ответы [ 4 ]

4 голосов
/ 07 октября 2008

Мне кажется, я где-то читал, что ядро ​​базы данных SQL Server 2005 должно быть примерно на 30% быстрее, чем ядро ​​SQL Server 2000. Возможно, вам потребуется запустить базу данных в режиме совместимости 90, чтобы получить эти преимущества.

Но я наткнулся на два сценария, когда производительность может резко упасть при использовании mssql 2005 по сравнению с mssql 2000:

  1. Измерение параметров: при использовании хранимой процедуры сервер sql рассчитывает ровно один план выполнения за один раз, сначала вы вызываете процедуру. План выполнения зависит от значений параметров, указанных для этого вызова. В нашем случае процедуры, которые обычно занимали около 10 секунд, работают в течение нескольких часов в соответствии с mssql 2005. Посмотрите здесь и здесь .

  2. При использовании распределенных запросов mssql 2005 ведет себя по-разному в отношении предположений о порядке сортировки на удаленном сервере. Поведение по умолчанию состоит в том, что сервер копирует все удаленные таблицы, участвующие в запросе, в локальную базу данных tempdb, а затем выполняет соединения локально. Обходной путь должен использовать OPENQUERY, где вы можете точно контролировать, какой набор результатов передается с удаленного сервера.

2 голосов
/ 10 августа 2008

после того, как вы перенесли БД в 2005 г., вы

обновить статистику при полном сканировании? перестроили индексы?

сначала попробуйте, а затем снова проверьте производительность

1 голос
/ 29 августа 2008

Используете ли вы подвыборы в ваших запросах?

Исходя из моего опыта, оператор SELECT с подвыборками, который отлично работает на SQL Server 2000, может сканировать на SQL Server 2005 (он может быть примерно в 10 раз медленнее!).

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

1 голос
/ 10 августа 2008

Кроме того, к вашему сведению, если вы запускаете уровень совместимости 90, некоторые вещи больше не поддерживаются, например, внешние соединения старого стиля (*= and =*)

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