Как показать время выполнения до отображения результата запроса - PullRequest
0 голосов
/ 22 мая 2009

Как показать время выполнения до отображения результата запроса

Ответы [ 5 ]

0 голосов
/ 02 августа 2011
long inicioBusquedaLong=Calendar.getInstance().getTimeInMillis();
this.setListaTramite(this.buscarCriterio());

long finBusquedaLong=Calendar.getInstance().getTimeInMillis();
this.tiempoBusqueda=finBusquedaLong-inicioBusquedaLong;
0 голосов
/ 22 мая 2009

Выполнить запрос асинхронно. С ADO это что-то вроде это . Для ADO.NET обратитесь к this .

Затем отображайте таймер, пока не получите событие Complete.

0 голосов
/ 22 мая 2009

Вы хотите, чтобы ваша программа отображала счетчик «Оставшееся время до завершения запроса» или индикатор выполнения, например, когда вы удаляете много файлов в проводнике Windows?

Это обычно невозможно. Многие запросы не могут быть оценены «заранее» без выполнения значительного объема работы, поэтому предполагаемое время завершения не будет доступно до тех пор, пока запрос почти не будет завершен.

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

(Даже пример удаления большого каталога в Windows чреват проблемами - им приходится сканировать весь каталог, чтобы подсчитать файлы, прежде чем они начнут их удалять, просто чтобы они могли показать вам индикатор выполнения; как правило, чтобы сэкономить время, чтобы забивать большие каталоги из командной строки).

0 голосов
/ 22 мая 2009

Как показать время выполнения до отображения результата запроса

Вы можете использовать «sys.dm_exec_requests», но он будет поддерживать только несколько операций, перечисленных ниже. Очевидно, он не может поддерживать нормальные запросы DML / select. sys.dm_exec_requests (Transact-SQL)

ALTER INDEX REORGANIZE

AUTO_SHRINK option with ALTER DATABASE

BACKUP DATABASE

CREATE INDEX

DBCC CHECKDB

DBCC CHECKFILEGROUP

DBCC CHECKTABLE

DBCC INDEXDEFRAG

DBCC SHRINKDATABASE

DBCC SHRINKFILE

KILL (Transact-SQL)

RESTORE DATABASE, 

UPDATE STATISTICS.
0 голосов
/ 22 мая 2009

Если вы вызываете запрос из кода, вы можете использовать секундомер для определения времени запроса. Запустите его перед выполнением и остановите сразу после.

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