|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Есть большая табличка на сервере (точнее не большая таблица, а долгий запрос), подгружаю ее на клиент. dAdapt.Fill(table); // эта строка отрабатывает минут 5 Загрузка идет в фоновом режиме. (backgroundworker) Хотелось бы реализовать отмену этого действия (прекратить загруку). Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 15:15 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
virus_system Хотелось бы реализовать отмену этого действия (прекратить загруку). Как это сделать? По идее - никак. Сервер, приняв запрос, уходит сам в себя и до того пока он не розродится - ни на какие внешние раздражители он не реагирует. Некоторые консоли под видом "остановки/прекращения" выполнения - тупо делают disconnect. _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 15:46 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Ex_Soft virus_system Хотелось бы реализовать отмену этого действия (прекратить загруку). Как это сделать? По идее - никак. Сервер, приняв запрос, уходит сам в себя и до того пока он не розродится - ни на какие внешние раздражители он не реагирует. Некоторые консоли под видом "остановки/прекращения" выполнения - тупо делают disconnect. _________________ "Helo, word!" - 17 errors 56 warnings Ну например у того же MSSQL Management Studio есть же кнопка остановить выполнение запроса. И он его останавливает... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 15:53 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
virus_system например у того же MSSQL Management Studio есть же кнопка остановить выполнение запроса. И он его останавливает... 1. Ex_Soft Некоторые консоли под видом "остановки/прекращения" выполнения - тупо делают disconnect. [/quote] После остановки что с процессами на серванте? spid тот же, что и был до остановки? Для того, чтобы расставить все точки над i ставим http://www.wireshark.org/download.html]wireshark и смотрим, что Ваша MSSQL Management Studio делает для остановки... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:11 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Ex_Soft После остановки что с процессами на серванте? spid тот же, что и был до остановки? После остановки в Management Studio? ID такой же ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:20 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
virus_system После остановки в Management Studio? ID такой же Ну... Тогда Ex_Soft ставим wireshark и смотрим, что Ваша MSSQL Management Studio делает для остановки... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:22 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Логика такая: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
P.S. Если сам атомарный запрос нужно отменить - то нужно рвать/восстанавливать коннект. Либо курить асинхронные соединения. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:23 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
МСУ, атомарный? это я как понимаю один запрос в данной транзации. У меня он один... типа select * from table1. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:26 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
virus_systemМСУ, атомарный? это я как понимаю один запрос в данной транзации. У меня он один... типа select * from table1. Да, всё верно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:29 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Вот еще: SqlCommand.Cancel ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:32 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
МСУЛогика такая: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Прошу прощения, но не понял этого? Чем мне это поможет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:34 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
virus_systemПрошу прощения, но не понял этого? Чем мне это поможет В Вашем случае - ничем, забудьте. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2010, 16:43 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
МСУ, sqlcommand.Cancel в принципе вариант, но при вызове метода Fill, а после метода Cancel. Возникает исключение. {"При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы. Операция отменена пользователем."} Это нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2010, 08:37 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
МСУЛогика такая: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
P.S. Если сам атомарный запрос нужно отменить - то нужно рвать/восстанавливать коннект. Либо курить асинхронные соединения. МСУ, прошу мне так же помочь и немного пояснить У меня один запрос на селект (20 мин) но fill виснет (при отмене), fill идет в отдельном потоке и поток этот не убить; коннект, комманд отменял, но fill как работает так и работает (oracle databasecontrol показывает) Выше ты привел sql запрос так? в тело бегин я ставлю sql команду в while я ставлю признак отмены? но как признак отмены я передам в уже исполняемый fill Очень прошу помочь мне, третий день не решить эту проблему. Поясни пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2011, 20:44 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Вот задача в один один со мной. http://www.sql.ru/forum/actualthread.aspx?tid=349211&hl=%f3%e1%e8%f2%fc%20%ef%ee%f2%ee%ea ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2011, 20:47 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Посмотрел еще на форуме надо идти к ocibreak Никто не подскажет как из проекта winfoms.net4 подступится к oci ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 00:15 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
авторdAdapt.Fill(table); // эта строка отрабатывает минут 5 Сколько у вас записей в таблице... ? Вы точно уверены что пользователь желает увидеть их все? Кстати, что мешает использовать, например, DataReader вместо DataAdapter? В цикле чтения спокойно сможете прервать... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 00:23 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
P.S. Исполните свой запрос через MS SMS с просмотром плана запроса, и посмотрите, можно ли увеличить скорость выполнения запроса... Sql Managment studio кстати иногда неплохо советует по созданию индексов... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 00:30 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Lelouch, Спасибо за ответ. У меня дело обстоит так, я написал сложный sql (много вложенных select, то есть у меня не как в обычном select используется таблица, а вместо таблицы стоит свой селект), запрос большой -192 столбца на 40 тыс строк выборки данных из разных таблиц 2млн.-10 млн. строк. Каждый из 192 столбцов рассчитывается (то есть два селекта: одно минус другое и получается один из 192 столбцов), то есть фактически в этом запрос оракл исполняет 192*2 select а потом привязывает все 192 столбца к одному соответствию. (правому боковику). То есть написал запрос по выборки всей финансовой информации по 40 тыс.дебитор в одном скл запросе.(финансовая информация хранится в разных оракловских таблицах). (конечно можно написать процедуру, чтобы данный расчет произошел ночью писался в таблицу и потом я бы работал с data.reader как чтение, но пока прав на создание таблиц в хранилище у меня нет) Таким образом этот select работает в оракле 20 мин (смотрел в pl/sql --18 Мин сам запрос и порядка еще 2 мин на загрузку данных 192*40 тыс. строк). Так вот мне ни как не выйти из fill если он запущен, то есть смотрю datacontrol все равно процесс sql идет. Процесс в оракл останавливается если я жму стоп в студии))), А програмно ни abort поток, ни application.exit не убивает запущенный процесс в оракле. Может никто не подскажет как мне тут быть. ПС Про value запроса я вообще молчу, фантастическая)))) Тут читаю что надо как oci, но пока не очень представлю как подступится из winforms. Вот и проблема что если методом fill я запускаю этот запрос, то потом я пока ничто не нашел чтобы убить ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 01:09 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
И продолжу, что отработанный select из dataset я скидываю в excel, оформляю и у меня готовый отчет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 01:14 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Блин. Я же написал. Заполняйте не DataAdapter'ом, а DataReader'ом... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 10:22 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Спасибо, сейчас попробую, отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 11:57 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
SPB2011-2010Спасибо, сейчас попробую, отпишусь. Ну я бы сделал примерно так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 12:31 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 12:35 |
|
Отмена выполнения запроса
|
|||
---|---|---|---|
#18+
Lelouch, Сейчас буду разбиратся с тем кодом что ты написал. спасибо большое!!!!!! за помощь. (реально уже убываю на это четвертый день, а на форуме четко не написано как в этом случае быть (но проблема бывает у многих). Вот к твоему посту попробывал сделать задачу datareaderom (в классическом варианте по книге Сеппа). Не получилось, ведь проблема не втом чтобы превать dataread когда он читает данные из оракл, когда тот уже сгенерировал запрос, а в том чтобы отменить сам запрос когда он рассчитывается в оракл (у меня по времени 20 мин), а у меня получается что он все считается в оркал даже при выходе из формы (в том числе и поток.abort---treadstate.abortrequested--ждет окончание процесса в оракл). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 13:04 |
|
|
start [/forum/topic.php?fid=17&fpage=38&tid=1350498]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 163ms |
0 / 0 |