sql >> Databáze >  >> RDS >> Sqlserver

Jaký je nejlepší způsob stránkování na serveru SQL?

ALTER PROCEDURE [dbo].[SP_tblTest_SelectSpecificRecordsWithCTE]
    @FromRow int = 1000000,
    @PgSize int = 10
AS
BEGIN
    ;WITH RecordsRN AS
    (
        select ID, colValue, ROW_NUMBER() over(order by colvalue) as Num from tblTest
    )
    SELECT ID Value, colValue Text FROM RecordsRN WHERE Num between @FromRow AND (@[email protected])
END

to je dotaz, který používám pro stránkování. použijte jej a za 4-5 sekund získáte ur požadovaných 10 záznamů. Dostávám 10 záznamů za 3 sekundy a celkové záznamy v mé databázi jsou 10 milionů, nepoužívejte top 10, vždy to přinese jen stejných 10 záznamů. v mém případě zachovávám velikost stránky a číslo počátečního řádku (@FromRow) v relaci a tyto dvě hodnoty předávám níže uvedené uložené proceduře a získám výsledek. Pokud používáte SQL 2012, možná budete chtít použít OFFSET a načíst dalších 10 řádků. vyhledejte na google klíčové slovo OFFSET a uvidíte požadovaný výsledek nahoře.

díky



  1. ExecuteReader vyžaduje otevřené a dostupné připojení. Aktuální stav připojení je Připojování

  2. Auto-inkrement MySQL mezi tabulkami

  3. Jak vrátit ukázkový řádek z databáze jeden po druhém

  4. Android – dotaz JSON mySQL poskytuje výjimku NetworkOnMainThreadException