私は15の列と6.5百万のレコードを持つテーブルを持っています。 ページングの助けを借りてC#側からこのテーブルにアクセスする必要があります。私はSPを書いたが、データを検索するのに約1.30分かかる。SQL 2005の大きなテーブルからのページング
Create Proc demo
(
@startRowIndex int,
@maximumRows int
)
AS
DECLARE @first_id int, @startRow int
SET @startRowIndex = (@startRowIndex - 1) * @maximumRows
IF @startRowIndex = 0
SET @startRowIndex = 1
SET ROWCOUNT @startRowIndex
SELECT @first_id = RecordID FROM edd_business_listings_05282009 ORDER BY RecordID
PRINT @first_id
SET ROWCOUNT @maximumRows
SELECT * FROM edd_business_listings_05282009 WHERE
RecordID >= @first_id
ORDER BY RecordID
SET ROWCOUNT 0
は、誰もが速く、この実行を作る方法を知ってい - は、ここに私のストアドプロシージャです。
テーブル定義(CREATE TABLE、please)、キーとインデックスなしで推測するだけです。 – RBarryYoung
すでにクラスター化されたインデックスであっても、RecordIDの非クラスター化インデックスは、SELECT @ first_id = RecordID ....を助けます。 –
RecordIDがシーケンシャルなクラスター化インデックスより良い。 – jfar