как может я проведение испытаний в Studio менеджмента SQL-сервера, не производя данные?

Можно попробовать , UISpec4J является библиотекой функционального и/или поблочного тестирования С открытым исходным кодом для основанных на Swing JAVA-приложений...

6
задан jcollum 6 August 2009 в 16:39
поделиться

5 ответов

Вы можете сделать SET ROWCOUNT 1 перед запросом. Я не уверен, что это именно то, что вам нужно, но это позволит избежать ожидания возврата большого количества данных и, следовательно, даст вам точные расчетные затраты.

Однако, если вы добавите статистику клиента к вашему запросу , одно из чисел - время ожидания ответов сервера, которое дает вам время расчета сервера, не включая время, необходимое для передачи данных по сети.

11
ответ дан 8 December 2019 в 16:08
поделиться

Как вы можете проверить производительность вашего запроса, если вы не выводите результаты? Ускорение тестирования бессмысленно, если тестирование ничего не говорит о том, как будет выполняться запрос. Вы действительно хотите узнать, что этой собаке запроса требуется десять минут, чтобы вернуть данные после того, как вы отправите ее в prod?

И, конечно же, потребуется время, чтобы вернуть 600 000 записей. Это также будет в вашем пользовательском интерфейсе, вероятно, это займет больше времени, чем в окне вашего запроса, потому что информация должна идти по сети.

1
ответ дан 8 December 2019 в 16:08
поделиться

Лучшее, что вы можете сделать, это проверить план выполнения запроса (нажмите Ctrl + L ) для фактического запроса. Это даст вам наилучшую оценку доступной производительности.

0
ответ дан 8 December 2019 в 16:08
поделиться

Вы можете УСТАНОВИТЬ СТАТИСТИКУ ВРЕМЕНИ ВКЛ. , чтобы получить измерение времени на сервере. И вы можете использовать запрос / Включить статистику клиента (Shift + Alt + S) в SSMS, чтобы получить подробную информацию об использовании времени клиентом. Обратите внимание, что запросы SQL не выполняются, а затем возвращают результат клиенту по завершении, но вместо этого они запускают , поскольку они возвращают результаты и даже приостанавливают выполнение, если канал связи заполнен.

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

2
ответ дан 8 December 2019 в 16:08
поделиться

Я бы подумал, что предложение where WHERE 1 = 0 определенно происходит на стороне SQL Server, а не Management Studio. Никаких результатов не будет.

Используется ли движок БД на том же компьютере, на котором запущена Mgmt Studio?

Вы можете:

  • Вывести в текст или
  • Вывести в файл.
  • Закройте панель результатов запроса.

Это просто переместит циклы, потраченные на рисование сетки в Mgmt Studio. Возможно, Resuls to Text в целом будет более производительным. Скрытие панели позволит сэкономить циклы Mgmt Studio при отрисовке данных. Он все еще возвращается в Mgmt Studio, так что на самом деле он не экономит много циклов.

0
ответ дан 8 December 2019 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: