我目前正致力于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的要求是什么?
不幸的是,在我的培训材料中,我没有在这种情况下遇到过这些术语,所以如果你能就我们的意思给我一些指导,那么我就可以从中找到它。
答案 0 :(得分:1)
确定性:指计算列引用的函数。给定相同输入时,确定性函数始终返回相同的值。例如,SUM是确定性的,但GETDATE不是。
精确:不包含浮点表达式的确定性表达式。
标记为PERSISTED:构建计算列时,可以选择将其标记为“PERSISTED”,以便将计算列物理存储到数据库中,而不是在引用时动态重新计算。
关于列B和C的要求的问题本身,似乎以下情况适用:
“只有精确的确定性表达式才能参与索引视图的键列和WHERE或GROUP BY子句。” Create Indexed Views