SqlServer表读取的性能问题,都来看看。

liankailk 2010-10-15 12:45:22
就是说,从一个表中读取4个字段(举例子),第一个表中有4个字段,第二个表中有10个字段,当然第二个表中的其中4个字段和第一个表是一样的,也就是要读取的那4个,在数据了大的时候读这俩表的时候,是不是第一个表会比第二个表快呢,还是即使是字段多也无关紧要,只要是读取想要的都差不多??????
没分,探讨测试下啊,大伙。
...全文
133 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Nice 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 liankailk 的回复:]
就是说,从一个表中读取4个字段(举例子),第一个表中有4个字段,第二个表中有10个字段,当然第二个表中的其中4个字段和第一个表是一样的,也就是要读取的那4个,在数据了大的时候读这俩表的时候,是不是第一个表会比第二个表快呢,还是即使是字段多也无关紧要,只要是读取想要的都差不多??????
没分,探讨测试下啊,大伙。
[/Quote]

lz说的是个老问题,是牺牲IO完整逻辑数据,还是牺牲逻辑数据提高IO的问题。
这得具体问题具体分析。

Rotel-刘志东 2010-10-15
  • 打赏
  • 举报
回复
--还是即使是字段多也无关紧要,只要是读取想要的都差不多??????
与字段的多少是有关系的,字段越多读取数据时,消耗磁盘I/0操作也比较频繁,性能就会下降。
liankailk 2010-10-15
  • 打赏
  • 举报
回复
2楼你说的和提问是两码事,两个表只是字段不同,但读取都是4个字段,你仔细看看问的。
cjzm83 2010-10-15
  • 打赏
  • 举报
回复
第二个表相对io会多些
obuntu 2010-10-15
  • 打赏
  • 举报
回复

一般而言,在同等条件下,数据段多,说明获取的数据多,获取的数据多,其IO要求就高,性能就差。
而如果建了合适索引,快也是有可能的。

所以,看情况而定。
Davily 2010-10-15
  • 打赏
  • 举报
回复
这就是为什么我们要对大表创建index来加快select的速度了....index也是一个表,只不过只存放我们需要访问的几个字段.所以query会很快
guguda2008 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liankailk 的回复:]

诸位,真不知道你们是评记忆回答的还是真的实验过,看了各位的回答我还是亲自测试了一下,我再把问题说一下,是两个表都读一样的4个字段值,这4个字段值是一样的,只是两个表的字段数不一样,表1只有4个,表2有10个或者更多。其实读取4个字段跟表的字段多少是没有关系的,因为你只读取4个,根本不设计到其余数据的IO读取,像上面几位的回答说字段多了IO量会增加,你都不读怎么会有IO增加呢??所以经过我的亲自测……
[/Quote]
你的行不够大,行内数据够大时,一页存储的数据会变少,相应的,读取N条数据就可能导致读取更多的数据页,导致IO变大。
liankailk 2010-10-15
  • 打赏
  • 举报
回复
诸位,真不知道你们是评记忆回答的还是真的实验过,看了各位的回答我还是亲自测试了一下,我再把问题说一下,是两个表都读一样的4个字段值,这4个字段值是一样的,只是两个表的字段数不一样,表1只有4个,表2有10个或者更多。其实读取4个字段跟表的字段多少是没有关系的,因为你只读取4个,根本不设计到其余数据的IO读取,像上面几位的回答说字段多了IO量会增加,你都不读怎么会有IO增加呢??所以经过我的亲自测试:读取相同的字段,无论表字段多少都是一样的!!!!!
cjzm83 2010-10-15
  • 打赏
  • 举报
回复
如果读取同样4个字段,8kb的页面,假设第一个表放20条数据,第二个表肯定<=20条数据,你查询1万条,第二个表读取的页面肯定要多一些的,查询1条,倒是可能一样,看情况了。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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