索引视图的要求

时间:2015-11-16 12:11:43

标签: sql sql-server tsql indexed-view

我目前正致力于SQL Server 70-461的认证。我正在进行一些练习测试,并且遇到了关于索引视图要求的问题。我理解,如果使用GROUP BY子句,索引视图必须具有SCHEMABINDING和COUNT_BIG(*),并且必须对索引进行聚类,然后这将实现数据。

CREATE VIEW VW_Test
AS
SELECT ColumnA, ColumnB FROM Table
WHERE ColumnC > 200

在示例问题中,将在ColumnA上创建索引。 ColumnB和ColumnC都是计算列。

问题是,ColumnB和ColumnC的要求是什么?

  • 确定型
  • 精确
  • 标记为PERSISTED

不幸的是,在我的培训材料中,我没有在这种情况下遇到过这些术语,所以如果你能就我们的意思给我一些指导,那么我就可以从中找到它。

1 个答案:

答案 0 :(得分:1)

确定性:指计算列引用的函数。给定相同输入时,确定性函数始终返回相同的值。例如,SUM是确定性的,但GETDATE不是。

精确:不包含浮点表达式的确定性表达式。

标记为PERSISTED:构建计算列时,可以选择将其标记为“PERSISTED”,以便将计算列物理存储到数据库中,而不是在引用时动态重新计算。

关于列B和C的要求的问题本身,似乎以下情况适用:

“只有精确的确定性表达式才能参与索引视图的键列和WHERE或GROUP BY子句。” Create Indexed Views