SQL Server 2008 R2创建索引

Mon*_*RPG 5 sql-server indexing

现在我正在寻找你的帮助来创建这些索引.

现在这是我的表结构

表格描述屏幕上限

这个查询我需要索引以获得最大性能.

select PageId 
    from tblPages 
    where UrlChecksumCode = @UrlChecksumCode 
        and PageUrl = @PageUrl
Run Code Online (Sandbox Code Playgroud)

现在我对索引很糟糕.我这样计划,当查询执行时,它会首先找到UrlChecksumCode行,然后查看pageurl列.如果你也解释我为什么要做这样的索引我真的很感激.谢谢.

SQL*_*ace 11

一种方式,因为你的pageURL很长(nvarchar(1000),如果你不使用包含的列,索引只能是900字节,我用包含的列创建了这个索引

create index ix_IndexName on tblPages (UrlChecksumCode) INCLUDE(PageUrl)
Run Code Online (Sandbox Code Playgroud)

要么

create index ix_IndexName on tblPages (UrlChecksumCode) INCLUDE(PageUrl, PageID)
Run Code Online (Sandbox Code Playgroud)

另请参阅SQL Server覆盖索引

为什么URL nvarchar而不是varchar ...它们可以是unicode吗?如果没有使它varchar并保存1/2的大小

  • +1我还要包含索引中的PageId列. (2认同)