如果我希望针对SQL Server数据库创建新索引,如何阻止它对现有数据建立索引?即只有新数据才能用此索引。我担心索引大小。
答案 0 :(得分:3)
使用过滤的索引
过滤索引是SQL SERVER 2008中的一项新功能。过滤索引用于索引表中的一部分行,这意味着它在INDEX上应用过滤器,与完全相比,它可以提高查询性能,降低索引维护成本并降低索引存储成本表索引
Ex: CREATE NONCLUSTERED INDEX NCI_Department
ON HumanResources.Employee(EmployeeID)
WHERE Title= 'Marketing Manager'
更多信息请参阅以下链接:
https://www.simple-talk.com/sql/performance/introduction-to-sql-server-filtered-indexes/
http://blog.sqlauthority.com/2008/09/01/sql-server-2008-introduction-to-filtered-index-improve-performance-with-filtered-index/
答案 1 :(得分:1)
使用已过滤的索引,仅对自日期以来的记录编制索引。
CREATE NONCLUSTERED INDEX IDX_NEW_SALES
ON SALES (SaleDate, SaleCostumerId)
WHERE SaleDate > '2016-11-1';