[數(shù)據(jù)庫] 通用分頁存儲過程第2/5頁
更新時間:2007年02月09日 00:00:00 作者:
臨時表
首先,我準(zhǔn)備先來說一下臨時表方法,這是一個廣泛被建議使用的解決方案,我在項目中遇到過好幾次了,這里有另一篇解釋它如何工作的文章,還有一個如何在DataGrid中是用定制化分頁(Custom Paging)的例子:
ASP.NET DataGrid分頁 第二部分 – 定制化分頁
這兩篇文章中的方法都是通過把主鍵數(shù)據(jù)拷貝到臨時表中,然后對主查詢做join實(shí)現(xiàn)查詢優(yōu)化。下面讓我們來看看這個方法的實(shí)質(zhì):
復(fù)制代碼 代碼如下:
CREATE TABLE #Temp (
ID int IDENTITY PRIMARY KEY,
PK /* here goes PK type */
)
INSERT INTO #Temp SELECT PK FROM Table ORDER BY SortColumn
SELECT FROM Table JOIN #Temp temp ON Table.PK = temp.PK ORDER BY temp.ID
WHERE ID > @StartRow AND ID < @EndRow
通過把所有的行拷貝到臨時表中,我們可以對查詢進(jìn)一步的優(yōu)化(SELECT TOP EndRow …),但是關(guān)鍵在于最壞情況——一個包含100萬記錄的表就會產(chǎn)生一個100萬條記錄的臨時表。考慮到這樣的情況,再看看上面文章的結(jié)果,我決定在我的測試中放棄該方法
相關(guān)文章
一次數(shù)據(jù)庫查詢超時優(yōu)化問題的實(shí)戰(zhàn)記錄
當(dāng)MySQL服務(wù)器出現(xiàn)異常(慢),首先要考慮是否因SQL語句引起數(shù)據(jù)庫慢,下面這篇文章主要給大家介紹了一次數(shù)據(jù)庫查詢超時優(yōu)化問題的實(shí)戰(zhàn)記錄,需要的朋友可以參考下2021-10-10關(guān)于數(shù)據(jù)庫設(shè)計中主鍵問題的思考
數(shù)據(jù)庫主鍵在數(shù)據(jù)庫中占有重要地位。主鍵的選取策略決定了系統(tǒng)是否可靠、易用、高效。本文探討了數(shù)據(jù)庫設(shè)計過程當(dāng)中常見的主鍵選取策略,并剖析了其做主鍵的優(yōu)缺點(diǎn),提出了相應(yīng)的解決問題的方法2013-08-08解決Navicat數(shù)據(jù)庫連接成功但密碼忘記的問題
這篇文章給大家介紹了Navicat數(shù)據(jù)庫連接成功,密碼忘記如何解決,文中給大家介紹了兩種解決方法,有詳細(xì)的圖文講解,需要的朋友可以參考下2023-08-08