首页 新闻 赞助 找找看

关于SQL 视图效率的问题

0
[已解决问题] 解决于 2015-08-02 12:14

有一个文章表,表中含有分类ID的外键(category_id),通过这个ID区查询分类表的分类名称,考虑到在循环输出数据时每一条记录都要去重新数据库往返一次,假设当前页面显示20条数据,那么就要执行20次数据库往返操作,因此用视图连接两个表

SELECT     dbo.com_notice_category.title AS category, dbo.com_notice.*
FROM         dbo.com_notice_category,
                      dbo.com_notice where dbo.com_notice_category.id = dbo.com_notice.category_id

如果数据量大时,假设这个表有几百万的记录,那么意味着每次SQL SERVER 都要将这百万条数据整合到一个虚拟表,相比往返20次,是不是效率更低而得不偿失呢?

ludi的主页 ludi | 初学一级 | 园豆:5
提问于:2015-05-15 16:38
< >
分享
最佳答案
0

sql 会把视图的查询转换成表查询,表的索引OK的话性能不用太担心(测试数据库sql server2005)

可以插入百万数据后分别用T-SQL语句查询和视图查询比较一下查询性能(开启time[set statitics time on]和io[set statistics io on],开启执行计划

奖励园豆:5
某猿 | 菜鸟二级 |园豆:373 | 2015-05-15 20:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册