这样操作视图是否会浪费?

fzn0621 2008-04-02 09:32:51
比如我建了这样一张视图,主表是一个文章表,文章表内有作者的ID,文章分类的ID,文章栏目的ID等等,分别对应连了N张表。所有主表内用int类型保存一个索引的字段都连了对应表用以读取对应数据。

然后我使用的地方,一般都不会用到全部返回的数据,比如有的地方只用到主表部分字段,和对应作者表一些字段,有些地方只用到文章分类的部分字段。我为了方便,都使用了这同张视图。这张试图所返回的字段数是所有用到该视图处需要用到的所有字段。。因为我觉得视图其实也是一段查询集合而已。不知道这样用法会不会造成浪费呢?(会不会执行查询该视图时是这种情况:先执行视图,返回所有视图字段,然后根据查询视图那个select返回对应需要的几个字段)

一直的一个疑惑,期待有高手指点。
...全文
116 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
接分是王道!
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
不知,帮顶
rockyvan 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ywjq 的回复:]
数据量大的情况下,把不同功能的视图分开,可以明显提高效率
[/Quote]
同意这个。
哈哈 2008-04-25
  • 打赏
  • 举报
回复
数据量大的情况下,把不同功能的视图分开,可以明显提高效率
utpcb 2008-04-03
  • 打赏
  • 举报
回复
我不喜欢视图呵呵!
ojuju10 2008-04-03
  • 打赏
  • 举报
回复
可以写成动态的,用Exec()运行
fzn0621 2008-04-02
  • 打赏
  • 举报
回复
项目比较大。。逻辑比较复杂。所以视图比较多,比表还多出一些,表大概130多张,视图约140张,见笑了。
ojuju10 2008-04-02
  • 打赏
  • 举报
回复

视图是一种虚拟的表,不会占存储,

具体的视图具体分开去写吧
flairsky 2008-04-02
  • 打赏
  • 举报
回复
上百张视图 冏……
fzn0621 2008-04-02
  • 打赏
  • 举报
回复
因为目前我普遍这样子建视图,视图数量都已经相当庞大,有上百张了。如果再进行细分,每种用途建一个专用视图,那样开发效率一定会降低,还有视图大量增加,管理困难,命名也是困难。。要是SqlServer管理表和视图存储过程能用树形结构就好了。。(和类一样)
flairsky 2008-04-02
  • 打赏
  • 举报
回复
这个问题就看你查询的频率有多高。如果高,然后需查又不是视图全字段的话,还是分开的好。

一是逻辑清楚,二是节省时间,因为查询时间和查询输出数据大小是直接相关的,牵扯到io性能问题。

如果你查询频率很低,这么做无可厚非。但个人建议还是分开。
jinjazz 2008-04-02
  • 打赏
  • 举报
回复
你需要在开发维护效率和运行效率折中考虑这类问题
-狙击手- 2008-04-02
  • 打赏
  • 举报
回复
视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表
jinjazz 2008-04-02
  • 打赏
  • 举报
回复
当然会造成不必要的join运算

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧