2013-10-01 3 views
0

Мы экспериментируем с низкой производительностью с SQL-сервером 2008 при выполнении массивных запросов INSERT. Эти запросы включаются в транзакции партиями из 25, 50, 100 или 200 строк.SQL-клиент клиентский тест/низкая производительность Проблема

Различные факторы влияют на производительность БД:

  • количество одновременных запросов обрабатывать одновременно в базе данных

  • менее очевидно, сложность вставки (нормальная скорость, когда 8 колонок , но в 60 раз медленнее, если 20 столбцов!)

  • и более неожиданно клиентское приложение: мы протестировали jTDS, SQSH (командная строка) и Toad (GUI).

Следующий график показывает, как жаба намного быстрее и устойчивый, чем 2 других приложений: enter image description here NB: мы также протестировали SQL Server Express, и это так быстро, как жаба.

Как может Жаба быть более высокой, чем два других легких приложения? Как мы можем воспроизвести это исполнение с помощью jTDS или SQSH? Есть идеи?

Мы предлагаем пиво!

Франсуа

ответ

1

Я уже говорил об этом в предыдущих вопросах, но есть несколько вещей, которые вы должны смотреть.

Пункт 1: У вас есть/вы можете посмотреть ваш план выполнения, который будет часто указывать, где корень проблемы. Одно неверное соединение или преобразование могут привести к снижению производительности серверов.

Пункт 2: Ищите неявные преобразования. Недавно я сократил время выполнения запроса от 2 минут до 10 секунд, изменив переменную фильтра из объекта datetime в объект smalldatetime. Это устранило неявное преобразование в 6 миллионов строк, с которыми я сравнивал это.

Пункт 3: Это дорого, мы обнаружили, что было дешевле сделать копию таблицы (затем иметь дело с ограничениями, разрешениями, индексами и триггерами) с нашими преобразованиями/вставками, происходящими во время процесса копирования, чем это было обновите эти строки.

+0

Спасибо OrgTigger, но в этом случае сценарий _same_ SQL (предположительно оптимизированный) выполняется с использованием производительности _different_ в зависимости от клиентского приложения. Я не верю, что Toad, самое быстрое приложение, оптимизирует мой код перед его исполнением. Итак, как мы можем объяснить такие различия? – user2335044

Смежные вопросы