none
Разница в производительности между SQL 2000 и SQL 2005. RRS feed

  • Общие обсуждения

  • Один и тот же сервер (Dell PowerEdge 2950, два квад-зиона, 4 ГБ ОЗУ, 4 диска в 10 рейде). Одна и та же задача (выполнение определенных операций в небольшой базе 1C). Задача однопоточная, в процессе ее выполнения какую-то существенную нагрузку на систему (в основном процессор) оказывает только процесс SQL сервера. Выполнение задачи на SQL 2000 SP4 происходит примерно в полтора раза быстрее, чем на SQL 2005 SP2.

    Никакие манипуляции в Management Studio с настройкой доступных SQL объемов памяти, процессоров, модели восстановления и уровня совместимости БД и т.п. на производительность не влияют никак. Объем памяти и дисковая подсистема, судя по показателям perfmon (и по тестам на системах с разным объемом ОЗУ и дисковыми подсистемами), для задачи заведомо избыточны, все упирается в процессор.

    После записи трейса, скармливания результатов в Tuning Advisor и выполнения рекомендаций производительность поднялась процентов на 5-7, а tuning advisor сообщил, что 92% операций в трейсе производятся над объектами, отсутствующими в БД (я так понимаю, задача временно создает их).

    Вопрос - за счет чего такая разница в пользу SQL 2000 может возникать? И можно ли это как-то исправить настройками SQL сервера?
    1 декабря 2008 г. 13:45

Все ответы

  • 1С 8.х?

    На 2005 выполняются все, рекомендованные 1С, регламентные операции?

    MaxDop на 2005 чему равен?

     

    Приложите планы выполнения для 2000 и 2005.

    1 декабря 2008 г. 21:20
  • В большинстке случаев, после перехода с 2000ого на 2005ый ряд скриптов требует переписывания, т.к. в 2005ом новый оптимизатор, который в отличии от 2000ого более критично относится к "кривым" запросам

     

    3 декабря 2008 г. 5:35
    Отвечающий
  •  Knyazev Alexey написано:
    В большинстке случаев, после перехода с 2000ого на 2005ый ряд скриптов требует переписывания, т.к. в 2005ом новый оптимизатор, который в отличии от 2000ого более критично относится к "кривым" запросам

     


    Внимание, недостоверная информация. Отсутствие источника.
    5 декабря 2008 г. 1:18
  •  Гилёв Вячеслав написано:
     Knyazev Alexey написано:
    В большинстке случаев, после перехода с 2000ого на 2005ый ряд скриптов требует переписывания, т.к. в 2005ом новый оптимизатор, который в отличии от 2000ого более критично относится к "кривым" запросам

     


    Внимание, недостоверная информация. Отсутствие источника.

     

     

    первое, что вспомнил:

     

    -хинты с обязательным "with"
    -старый синтаксис *= =*
    -сортировка во Вьюхах слетает в 2005ом, без недокументированного флага трассировки
    -неявное преобразование типов
    --SELECT ROUND(0.5,0)  в SSMS 2005 запустите-тоже удивит

     

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

     

    вот допустим про "кривость" запросов, которые в 2000м отрабатывали:

    http://sql.ru/forum/actualthread.aspx?bid=1&tid=571298&hl=isnumeric#5859986

    5 декабря 2008 г. 4:58
    Отвечающий
  •  

    Вопрос - за счет чего такая разница в пользу SQL 2000 может возникать? И можно ли это как-то исправить настройками SQL сервера?

     

    Довелось переводить с 2000 на 2005 два проекта - небольшой (100-200 таблиц и 300-500 процедур) и относительно большой (2000 таблиц,  7000 процедур)

     

    В обоих случаях из-за разницы в работе оптимизатора часть запросов стала отрабатывать быстрее, часть - дольше, некоторое небольшое число запросов переходили в разряд "нидождёсси".

     

    Но поскольку в обоих случаях так или иначе собиралась статистика и в 2000 и в 2005 по временам выполнения процедур, то вредители были быстро найдены и обезврежены. Smile

     

    В итоге - работать стало быстрей, а 2005 вообще позволяет проблемные запросы получать в виде отчета в SSMS, так что в "большом" проекте в итоге трех недель "ленивой" оптимизации нагрузка на сервер снизилась раза в 3 по сравнению с 2000.

     

    Из конкретных рекомендаций: перестрейте все статистики (обязательно делается после перехода).

    Из неотносящихся к переходу (да и не очень похоже на Ваш случай, но на всякий случай...):

    Индексы как часто перестраиваете?

    SHRINK делаете? Wink

    10 декабря 2008 г. 23:28
    Отвечающий
  •  Knyazev Alexey написано:
     Гилёв Вячеслав написано:
     Knyazev Alexey написано:
    В большинстке случаев, после перехода с 2000ого на 2005ый ряд скриптов требует переписывания, т.к. в 2005ом новый оптимизатор, который в отличии от 2000ого более критично относится к "кривым" запросам

     


    Внимание, недостоверная информация. Отсутствие источника.

     

     

    первое, что вспомнил:

     

    -хинты с обязательным "with"
    -старый синтаксис *= =*
    -сортировка во Вьюхах слетает в 2005ом, без недокументированного флага трассировки
    -неявное преобразование типов
    --SELECT ROUND(0.5,0)  в SSMS 2005 запустите-тоже удивит

     

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

     

    вот допустим про "кривость" запросов, которые в 2000м отрабатывали:

    http://sql.ru/forum/actualthread.aspx?bid=1&tid=571298&hl=isnumeric#5859986



    Повторяю: убедительная просьба не вводить коллег в заблуждение.
    Если у вас есть конкретная база и конкретно воспроизводящийся пример, передайте его в testplatform@1c.ru или v8@1c.ru.

    В тех случаях, когда в отдел технической поддержки необходимо направить для анализа проблем информационную базу большого объема, следует направить письмо на адрес v8@1c.ru с описанием данной потребности. В ответ на это письмо будут направлены инструкции по размещению информационной базы на ftp-ресурсе.

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

    Перечень предоставляемой информации

    • Подробное описание условий проявления проблемы. Для многопользовательского режима необходимо указать параметры нагрузки на систему:
      • Среднее количество активных пользователей;
      • Среднее количество записываемых в час документов;
      • Среднее количество строк в документе;
    • Параметры используемого оборудования:
      • Клиентские компьютеры;
      • Сервер баз данных;
      • Сервер 1С:Предприятия 8 (если установлен на отдельном компьютере);
    • Результаты предварительного анализа (если проводился);
    • Дополнительная информация, которая может быть использована при анализе проблем с производительностью:
      • Результаты замеров производительности проблемной операции;
        • Замер производительности средствами 1С:Предприятия 8;
        • Замер производительности средствами SQL Profiler;
        • Замер параметров загрузки клиентского и серверного оборудования средствами Performance Monitor:
          • Загрузка процессора;
          • Загрузка дисковой системы;
          • Загрузка памяти;
      • Тестовый пример, демонстрирующий проблему:
        • Исходная база данных или конфигурация;
        • Необходимые для воспроизведения проблемы обработки;
        • Подробное описание процесса воспроизведения проблемы.
    P.S. может так оказаться, что некоторые проблемы - это проблемы разработчиков, выполнявших доработку конфигураций.
    13 декабря 2008 г. 17:00
  •  Гилёв Вячеслав написано:
     Knyazev Alexey написано:
     Гилёв Вячеслав написано:
     Knyazev Alexey написано:
    В большинстке случаев, после перехода с 2000ого на 2005ый ряд скриптов требует переписывания, т.к. в 2005ом новый оптимизатор, который в отличии от 2000ого более критично относится к "кривым" запросам

     


    Внимание, недостоверная информация. Отсутствие источника.

     

     

    первое, что вспомнил:

     

    -хинты с обязательным "with"
    -старый синтаксис *= =*
    -сортировка во Вьюхах слетает в 2005ом, без недокументированного флага трассировки
    -неявное преобразование типов
    --SELECT ROUND(0.5,0)  в SSMS 2005 запустите-тоже удивит

     

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

     

    вот допустим про "кривость" запросов, которые в 2000м отрабатывали:

    http://sql.ru/forum/actualthread.aspx?bid=1&tid=571298&hl=isnumeric#5859986



    Повторяю: убедительная просьба не вводить коллег в заблуждение.
    Если у вас есть конкретная база и конкретно воспроизводящийся пример, передайте его в testplatform@1c.ru или v8@1c.ru.

    В тех случаях, когда в отдел технической поддержки необходимо направить для анализа проблем информационную базу большого объема, следует направить письмо на адрес v8@1c.ru с описанием данной потребности. В ответ на это письмо будут направлены инструкции по размещению информационной базы на ftp-ресурсе.

    P.S. может так оказаться, что некоторые проблемы - это проблемы разработчиков, выполнявших доработку конфигураций.

     

    при чём тут база 1с? разговор, про то, что один и тот же запрос в разных версиях (иногда даже при разных СП одной версии) MS SQL Server может отрабатываться по разному и план, который строит оптимизатор, на другой версии может оказаться не тем, который вы ожидали и видели ранее. Поэтому надо быть готовым к возможному переписыванию скрипта.

    15 декабря 2008 г. 7:28
    Отвечающий
  • >> Повторяю: убедительная просьба не вводить коллег в заблуждение.

    Вы перепутали форум MS и 1С по видимому....

    По нашим тестам 2005 действительно в большинстве случаев процентов на 5-10 медленнее чем 2000. И попытки оптимизации запросов опять же в большинстве случаев не помогли. По видимому это плата за всякие CLR.

    А вот ситуация с 2008 еще хуже. Разница с 2000 (да и с 2005) уже намного больше. Но будем надеятся что после сервис пака что то улучшится.

    Базы данных НЕ 1С.

    18 декабря 2008 г. 9:51