Mécanismes de pagination SQL Server efficaces
Lorsque vous traitez de vastes listes d'enregistrements, il est impératif d'optimiser la récupération des données pour des raisons de performances. Pour éviter de surcharger votre système, une approche pratique consiste à mettre en œuvre une pagination, permettant aux utilisateurs de sélectionner des sous-ensembles de données spécifiques.
Approche du numéro de ligne
Ajout d'un numéro de ligne à chacun l'enregistrement et le filtrage en fonction de ce numéro sont une solution viable. Cependant, cela peut entraîner une surcharge de performances, en particulier lorsque la table est volumineuse.
Procédure stockée optimisée
La procédure stockée T-SQL suivante fournit un mécanisme de pagination très efficace :
CREATE PROCEDURE dbo.PagingTest ( @PageNumber int, @PageSize int ) AS DECLARE @FirstId int, @FirstRow int SET @FirstRow = ( (@PageNumber - 1) * @PageSize ) + 1 SET ROWCOUNT @FirstRow -- Add check here to ensure that @FirstRow is not -- greater than the number of rows in the table. SELECT @FirstId = [Id] FROM dbo.TestTable ORDER BY [Id] SET ROWCOUNT @PageSize SELECT * FROM dbo.TestTable WHERE [Id] >= @FirstId ORDER BY [Id] SET ROWCOUNT 0 GO
Cette procédure stockée utilise la capacité de l'optimiseur SQL à trouver efficacement le premier ID. Combiné avec ROWCOUNT, il garantit une approche efficace en termes de CPU et de lecture. Elle est particulièrement efficace pour les tables comportant un nombre important de lignes.
Considérations
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!