(小F,晴天)原理性的问题 1.sqlserver怎么知道insert一条数据时,把这条数据插入到哪个page?2.alter 某char列的长度,对性能有什么影响吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?123:荣获过荣誉勋章的都可以 有谁知道,告诉下,我一定会结帖,这是一个从事过四年的SQLServer DBA问我的问题,可惜我。 路过,谦虚的答:1.插入时,查看IAM分页及PFS分页来跟踪文中的扩展是否属于一张表,那些扩展的哪些分页还有可用空间。如果没有空间,就是用GAM和SGAM来寻找可用扩展来分配空间。当然页也在这上面被分配的。2.修改char列长度,将对性能有影响。试想同样一个页,只能放下原来一半的数据。3.count(1)还是count(*) 也好,效率还是要具体索引的。因具体情况而定。 LZ可以测试。 1.sqlserver怎么知道insert一条数据时,把这条数据插入到哪个page?不明白你的意思2.alter 某char列的长度,对性能有什么影响吗?修改char长度会影响查询效率3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?堆表慢,后两个应该是一样的123:荣获过荣誉勋章的都可以可能是水货 1.sqlserver怎么知道insert一条数据时,把这条数据插入到哪个page?这个真 不清楚2.alter 某char列的长度,对性能有什么影响吗?这个当然有 3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?具体去看看执行计划 2.alter 某char列的长度,对性能有什么影响吗?这里所说的性能是指什么啊?不清楚这问题是啥意思3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?堆表肯定慢,另外2个弄10万条记录测试一下吧 1.如果表有聚集索引,根据聚集索引所排的位置,将记录插入指定的页.如果没有,则插入表的尾部按填充因子算尚未填满的页中.2.改变列的长度,恐怕最主要的是考虑会不会截短字符而造成数据丢失.如果是增大字节数,也谈不上对性能有什么影响,因为,你要增加长度,那必定是有更长的数据要插入,此时并不去考虑性能的问题.3.在使用count函数时,除了采用分组统计(group),不使用到索引,因为它是以满足条件的总行数进行统计的,因此,谈不上堆表与含有聚集索引或非聚集索引表谁快谁慢的问题. 3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?针对问题3,我做了一下测试,6万多条记录堆表表 'test'。扫描计数 1,逻辑读取 179 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。聚集索引表 'test'。扫描计数 1,逻辑读取 172 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。聚集+非聚集表 'test'。扫描计数 1,逻辑读取 149 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 前两个不说了,最后一个,count(1)=count(number)=count(*) 其中的1并不是指第一列。没有哪一种count会比count(*)更快,如果你用表中最小的列作一个非聚集索引,那么,此时count(*)走此索引,读取page最小,也就最快。 关于count(*),我们08年sql区进行过讨论,当时还就一些count(*)细节咨询过微软。 求sql....... sql server 2005连接失败 昨天挂了一晚上都没没有人解答啊 SQL分组求中位数问题 插入一张表,数据从另外一张表中取得,然后在第一张表增加一个已知值的字段,怎么操作呢? [原] 游标替代 这样的sql语句怎么写? 在SQL SERVER中如何查看消息编号,并进行添加,删除消息的操作? 求一个sql语句,关于权限、字符串的。(在线等,有结果后今天接分) 关于SQLSERVER JOB 报错的问题,请高手指点 紧急!存储过程中如何调用系统月份来求取与之对应的字段数据和? 将SQL 2005 数据库 查询出的结果转存到一张xls表格中 求助!!!!!!!!!!!
路过,谦虚的答:1.插入时,查看IAM分页及PFS分页来跟踪文中的扩展是否属于一张表,那些扩展的哪些分页还有可用空间。
如果没有空间,就是用GAM和SGAM来寻找可用扩展来分配空间。当然页也在这上面被分配的。2.修改char列长度,将对性能有影响。试想同样一个页,只能放下原来一半的数据。3.count(1)还是count(*) 也好,效率还是要具体索引的。因具体情况而定。 LZ可以测试。
不明白你的意思
2.alter 某char列的长度,对性能有什么影响吗?
修改char长度会影响查询效率
3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?
堆表慢,后两个应该是一样的123:荣获过荣誉勋章的都可以
可能是水货
这个真 不清楚
2.alter 某char列的长度,对性能有什么影响吗?
这个当然有
3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?
具体去看看执行计划
这里所说的性能是指什么啊?不清楚这问题是啥意思
3.count(*)是查堆表快,还是查只有聚集索引的表快,还是有聚集+非聚集快?
堆表肯定慢,另外2个弄10万条记录测试一下吧
2.改变列的长度,恐怕最主要的是考虑会不会截短字符而造成数据丢失.如果是增大字节数,也谈不上对性能有什么影响,因为,你要增加长度,那必定是有更长的数据要插入,此时并不去考虑性能的问题.
3.在使用count函数时,除了采用分组统计(group),不使用到索引,因为它是以满足条件的总行数进行统计的,因此,谈不上堆表与含有聚集索引或非聚集索引表谁快谁慢的问题.
表 'test'。扫描计数 1,逻辑读取 179 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。聚集索引
表 'test'。扫描计数 1,逻辑读取 172 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。聚集+非聚集
表 'test'。扫描计数 1,逻辑读取 149 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
没有哪一种count会比count(*)更快,如果你用表中最小的列作一个非聚集索引,那么,此时count(*)走此索引,读取page最小,也就最快。