我們有一個(gè)網(wǎng)站存在性能問(wèn)題,存儲(chǔ)過(guò)程執(zhí)行是瓶頸。造成這種情況的原因之一是其中一些存儲(chǔ)過(guò)程在頁(yè)面加載時(shí)啟動(dòng)。因此,假設(shè)數(shù)據(jù)庫(kù)負(fù)載很高,用戶(hù)對(duì)頁(yè)面上的報(bào)告加載所需的時(shí)間感到沮喪,并反復(fù)刷新頁(yè)面,啟動(dòng)同一存儲(chǔ)過(guò)程的新執(zhí)行。這是我們用來(lái)執(zhí)行存儲(chǔ)過(guò)程和管理連接的代碼:using (SqlCommand cmd = CreateCommand(qry, CommandType.StoredProcedure, args)) { SqlDataAdapter adapt = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); adapt.Fill(ds); return ds; }即使用戶(hù)離開(kāi)頁(yè)面或刷新頁(yè)面,舊的執(zhí)行仍然會(huì)訪問(wèn)數(shù)據(jù)庫(kù),產(chǎn)生一個(gè)新的。兩種可能的解決方案:當(dāng)生成它的用戶(hù)離開(kāi)它本來(lái)會(huì)顯示的頁(yè)面時(shí),以某種方式終止存儲(chǔ)過(guò)程的執(zhí)行。更進(jìn)一步,嘗試保留連接的相同實(shí)例,以便如果用戶(hù)點(diǎn)擊同一頁(yè)面,它將等待來(lái)自前一個(gè)存儲(chǔ)過(guò)程的結(jié)果,然后在頁(yè)面上顯示這些結(jié)果。隨著這些事情的發(fā)展,常見(jiàn)的做法是什么,它們是如何實(shí)施的?當(dāng)用戶(hù)離開(kāi)調(diào)用它的頁(yè)面時(shí),我如何至少終止存儲(chǔ)過(guò)程?
- 1 回答
- 0 關(guān)注
- 99 瀏覽
添加回答
舉報(bào)
0/150
提交
取消