簡體   English   中英

加速這個查詢

[英]Speeding up this query

這是我的查詢大約需要1.5秒。 我可以降低這個嗎?

SELECT * 
FROM 
    (SELECT 
        ROW_NUMBER() OVER (ORDER BY NAME asc) peta_rn, 
        peta_query.* 
     FROM 
         (SELECT 
              BOOK, PAGETRIMMED, NAME, TYPE, PDF 
         FROM 
              CCWiseDocumentNames2 cdn
         INNER JOIN 
              CCWiseInstr2 cwi ON cwi.ID = cdn.ID) as peta_query) peta_paged 
WHERE 
    peta_rn > 1331900 AND peta_rn <= 1331950

這些是我的表格結構:

CREATE TABLE [dbo].[CCWiseDocumentNames2](
    [ID] [int] NULL,
    [BK_PG] [varchar](50) NULL,
    [NAME] [varchar](100) NULL,
    [OTHERNAM] [varchar](100) NULL,
    [TYPE] [varchar](50) NULL,
    [INDEXNAME] [varchar](50) NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[CCWiseInstr2](
    [ID] [int] NULL,
    [BK_PG] [varchar](50) NULL,
    [DATE] [datetime] NULL,
    [ITYPE] [varchar](50) NULL,
    [BOOK] [int] NULL,
    [PAGE] [varchar](50) NULL,
    [NOBP] [varchar](50) NULL,
    [DESC] [varchar](240) NULL,
    [TIF] [varchar](50) NULL,
    [INDEXNAME] [varchar](50) NULL,
    [CONFIRM] [varchar](50) NULL,
    [PDF] [varchar](50) NULL,
    [PAGETRIMMED] [varchar](10) NULL,
    [PageINT] [int] NULL,
    [PageCHAR] [varchar](2) NULL,
    [IdAuto] [int] NOT NULL
) ON [PRIMARY]

這是我的執行計划:

在此輸入圖像描述

正如您所看到的,它是97%聚簇索引搜索和3%索引掃描。 有進一步改進此查詢的方法嗎?

您不能動態添加rownumber到超過一百萬行,並期望where子句將立即識別具有新生成的rownumbers的那些行。

因為我沒有那么大量的數據,所以只能提供一些供您考慮的選項:

專門為Name列的聚集索引(ID除外)在獲得row_number over name之后進行連接。 將CCWiseInstr2中的三列包含在ID列的非聚集索引中。 這可以節省一些硬盤主軸的運動。 只有大量數據才能觀察到性能增益。

CREATE NONCLUSTERED INDEX  [idx2_ID_include] ON [dbo].[CCWiseInstr2] ([ID] ASC) INCLUDE ( [BOOK], [PDF], [PAGETRIMMED]) 
GO

With a as (
    Select * 
    from (  SELECT  ROW_NUMBER() OVER (ORDER BY NAME asc) as  peta_rn, ID, 
                    type 
            from    CCWiseDocumentNames2) as Temp 
            where   peta_rn > 1331900 AND peta_rn <= 1331950
) 
select  a.peta_rn, 
        a.type, 
        b.book, 
        b.PAGETRIMMED, 
        b.PDF
from    a 
join    CCWiseInstr2 as b on a.id = b.id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM