J'ai une table avec 15 colonnes et 6,5 millions d'enregistrements. J'ai besoin d'accéder à cette table du côté C# avec l'aide de pagination. J'ai écrit un SP, mais il faut environ 1,30 minutes pour récupérer les données. ici est mon stocké Proc -Paging à travers une grande table en 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
Est-ce que quelqu'un sait une façon de faire cette course plus rapide.
Nous ne ferions que deviner sans la définition de la table (CREATE TABLE, s'il vous plaît), les clés et les index. – RBarryYoung
Un index non cluster sur RecordID, même s'il s'agit déjà de l'index clusterisé, aiderait avec SELECT @first_id = RecordID .... –
Si RecordID est séquentiel, un index clusterisé fonctionnerait beaucoup meilleur. – jfar