iT邦幫忙

0

用web程式,從sqlserver裡select資料的動作,能夠指定終止嗎??

當我利用asp或是aspx的網頁,從sqlserver資料庫裡select資料時
發現所選擇的條件不符我所想要的
有什麼web程式或是web指令可以讓sqlserver停止我剛所執行的select動作
而不是把視窗關閉,再重來一次

看更多先前的討論...收起先前的討論...
wordsmith iT邦高手 1 級 ‧ 2008-05-13 19:36:24 檢舉
你是什麼階段發現所選擇的條件不符需要?是送出去就發現了,還是資料送回來之後才發現?

送另一個sql select語法出去,會不會就能達到你要求呢?
魯大 iT邦高手 1 級 ‧ 2008-05-13 23:18:44 檢舉
這位大大的問題該不會是指...
他送了一個select出去之後
在資料送回來之前,要把select給停下來...
fillano iT邦超人 1 級 ‧ 2008-05-14 12:07:19 檢舉
他說的應該不是在資料送回來前吧....資料都還沒送回來,想必也不可能知道是不是他要的。如果知道不是他要的,那query就已經做完了,也不用中止阿....

說老實話,他的需求還蠻奇怪的。
nikwu43 iT邦好手 1 級 ‧ 2008-05-14 15:19:16 檢舉
我是指,因送出的需求造成sqlserver須select大量資料回傳
這樣太浪費時間了
若能中止sqlserver的select
這樣我就能夠重新select
感覺這個問題應該跟sql command的最佳化比較有關,試試看適當的用top or limit限制傳回的筆數
davistai iT邦大師 1 級 ‧ 2008-05-28 11:04:04 檢舉
謝謝提問與回答的大大們!!

2 個回答

38
jamesjan
iT邦高手 1 級 ‧ 2008-05-16 09:03:42
最佳解答

要sqlserver停止一個query指令,要在sqlserver上下指令去停止
這好像是廢話
一般我們都是使用SQL Enterprise Manager or Query Analyzer與 SQL Server 溝通,功力高強的人可以直接在SQL Server主機上開CMD視窗直接下指令

以 Http Protocol 來說,Connect/Request/Response/Disconnect
當你從Client發出一個網頁的Request時,Client端就會處在等待Response的階段,
所以這時候後端資料處理的動作是在Web Server與Database Server之間,如果要由Cleint端再去Initialize一個Web程式去Stop剛才的Query Command,你必須要知道很多後端處理的動作,如Session number, SQL Server 中的 process id 等等,
我想有這麼高功力的人,也不會這樣去處理問題

直接在 Enterprise Manager 中的管理 | 目前的活動 (Activity) 中的 Process Information 去找出該 Process (點兩下就可以知道那個 Process 正在執行哪個 SQL Statement), 按右鍵把它 kill 掉,這樣你剛剛下的那個指令就會停止,Client端也會結束等待的階段而回應一些錯誤訊息,但要注意的是要殺對 Process id

希望這回答對您有幫助 :)

28
fillano
iT邦超人 1 級 ‧ 2008-05-19 12:01:06

從另一方面來說,也是asp端程式怎麼寫的問題吧。

使用者的需求是甚麼?他會要求做這樣籠統的查詢,讓你在sql server中取大量的資料嗎?也許查詢條件可以下得更精確,讓回傳的結果集更小。

另外,我想至少適當的分頁是需要的(用TOP或ROW_NUMBER()等方法),這樣可以縮小每一次查詢得到的結果集,就算查詢條件不適當,也不會有嚴重的影響。

我要發表回答

立即登入回答