在这个技巧中,我将使用AdventureWorks数据库中的Person.Address表。
禁用索引
你可以通过不同的方式禁用索引。让我们逐个来介绍。
1、 通过T-SQL禁用索引
执行下面的T-SQL来禁用AdventureWorks数据库中的Person.Address 表的IX_Address_StateProvinceID索引。 探究SQL Server 2008的过滤索引
GO
ALTER INDEX IX_Address_StateProvinceID ON Person.Address DISABLE
GO
-- Query to check Index Usage
SELECT NAME AS [IndexName], TYPE_DESC AS [IndexType],
CASE IS_DISABLED
WHEN 0 THEN 'Enabled'
ELSE 'Disabled'
END AS [IndexUsage],
FILL_FACTOR AS [FillFactor] FROM SYS.INDEXES
WHERE OBJECT_ID = OBJECT_ID('Person.Address') ORDER BY IndexName, IndexUsage
GO
打开AdventureWorks表的对象浏览器,直到你打开到Person.Address,接着打开索引,然后右键单击IX_Address_StateProvinceID(非唯一,非群集)并且从下拉菜单中选择禁用。这时将打开禁用索引对话框,点击OK就可以禁用索引。
你也可以像下面截图中那样,通过不勾选使用索引选项来禁用一个索引,这个选项在索引属性对话框的选项页面中。
2、 通过SMSS禁用索引
打开AdventureWorks表的对象浏览器,直到你打开到Person.Address,接着打开索引,然后右键单击IX_Address_StateProvinceID(非唯一,非群集)并且从下拉菜单中选择禁用。这时将打开禁用索引对话框,点击OK就可以禁用索引。
你也可以像下面截图中那样,通过不勾选使用索引选项来禁用一个索引,这个选项在索引属性对话框的选项页面中。
启用索引
你可以通过不同的方式启用索引。现在让我们逐个进行介绍。
1、 通过ALTER INDEX REBUILD语句启用索引
USE AdventureWorks GO ALTER INDEX IX_Address_StateProvinceID ON Person.Address REBUILD GO |
USE AdventureWorks GO CREATE NONCLUSTERED INDEX [IX_Address_StateProvinceID] ON [Person].[Address] ( [StateProvinceID] ASC )WITH (DROP_EXISTING = ON, FILLFACTOR = 80) ON [PRIMARY] GO |
打开AdventureWorks表的对象浏览器,直到你打开到Person.Address,接着打开索引,然后右键单击IX_Address_StateProvinceID(非唯一,非群集)并且从下拉菜单中选择重新建立。这时将打开重新建立索引对话框,点击OK就可以 启用索引。
你也可以像下面截图中那样,通过选择使用索引选项来启用一个索引,这个选项在索引属性对话框的选项页面中。