0

为什么建议从特定表的视图中选择数据,而不是直接从表中选择。

例如。我有

select * from table1 --Not recommended

create view test (

select * from table1

) 


select * from view - Recommended.

是因为锁定问题还是其他(使用 mssql 2008 R2)

4

2 回答 2

1

意见一般建议

  • 隐藏基础表结构,即具有计算列或转换列等,
  • 在粒度级别管理访问,即仅授予对表中某些列的访问权限
于 2013-04-18T12:11:04.073 回答
1

我从来没有见过这个推荐 - 一个来源会很好!

正如 Vikdor 所说,有理由使用视图 - 安全性,并抽象出围绕底层数据的逻辑;它们对性能没有影响。

实际上,您的示例将被视为反模式,因为视图不会自动识别基础表的更改;每次更改“table1”时,都必须重新创建视图。

我还看到了一些情况,其中查询优化器通过访问视图而有些困惑,并且生成的查询比查询基表要慢。这是高度特定于平台和版本的,但是对于复杂的查询,这可能是一个问题。

物化视图可能具有性能优势,尤其是在视图存储复杂计算时。

于 2013-04-18T12:34:09.423 回答