[數(shù)據(jù)庫] 通用分頁存儲過程第2/5頁
更新時(shí)間:2007年02月09日 00:00:00 作者:
臨時(shí)表
首先,我準(zhǔn)備先來說一下臨時(shí)表方法,這是一個(gè)廣泛被建議使用的解決方案,我在項(xiàng)目中遇到過好幾次了,這里有另一篇解釋它如何工作的文章,還有一個(gè)如何在DataGrid中是用定制化分頁(Custom Paging)的例子:
ASP.NET DataGrid分頁 第二部分 – 定制化分頁
這兩篇文章中的方法都是通過把主鍵數(shù)據(jù)拷貝到臨時(shí)表中,然后對主查詢做join實(shí)現(xiàn)查詢優(yōu)化。下面讓我們來看看這個(gè)方法的實(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
通過把所有的行拷貝到臨時(shí)表中,我們可以對查詢進(jìn)一步的優(yōu)化(SELECT TOP EndRow …),但是關(guān)鍵在于最壞情況——一個(gè)包含100萬記錄的表就會產(chǎn)生一個(gè)100萬條記錄的臨時(shí)表??紤]到這樣的情況,再看看上面文章的結(jié)果,我決定在我的測試中放棄該方法
相關(guān)文章
一次數(shù)據(jù)庫查詢超時(shí)優(yōu)化問題的實(shí)戰(zhàn)記錄
當(dāng)MySQL服務(wù)器出現(xiàn)異常(慢),首先要考慮是否因SQL語句引起數(shù)據(jù)庫慢,下面這篇文章主要給大家介紹了一次數(shù)據(jù)庫查詢超時(shí)優(yōu)化問題的實(shí)戰(zhàn)記錄,需要的朋友可以參考下2021-10-10
mycat在windows環(huán)境下的安裝和啟動(dòng)
這篇文章主要介紹了mycat在windows環(huán)境下的安裝和啟動(dòng)過程,需要的朋友參考下吧2018-03-03
關(guān)于數(shù)據(jù)庫設(shè)計(jì)中主鍵問題的思考
數(shù)據(jù)庫主鍵在數(shù)據(jù)庫中占有重要地位。主鍵的選取策略決定了系統(tǒng)是否可靠、易用、高效。本文探討了數(shù)據(jù)庫設(shè)計(jì)過程當(dāng)中常見的主鍵選取策略,并剖析了其做主鍵的優(yōu)缺點(diǎn),提出了相應(yīng)的解決問題的方法2013-08-08
SQL 優(yōu)化經(jīng)驗(yàn)總結(jié)34條
我們要做到不但會寫SQL,還要做到寫出性能優(yōu)良的SQL,以下為筆者學(xué)習(xí)、摘錄、并匯總部分資料與大家分享!2009-07-07
解決Navicat數(shù)據(jù)庫連接成功但密碼忘記的問題
這篇文章給大家介紹了Navicat數(shù)據(jù)庫連接成功,密碼忘記如何解決,文中給大家介紹了兩種解決方法,有詳細(xì)的圖文講解,需要的朋友可以參考下2023-08-08

