两个问题:1,(聚集或者非聚集的)索引页会不会出现也拆分;2,非聚集索引存储时又没排序

专注or全面 2013-09-18 02:14:40
加精
两个问题:
1,(聚集或者非聚集的)索引页会不会出现页拆分;2,非聚集索引存储时有没有排序
怎么测试验证,谢谢

理不辨不明











中秋快乐,国庆快乐,恭喜发财,广告走开
...全文
1984 52 打赏 收藏 转发到动态 举报
写回复
用AI写文章
52 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 楼主 x_wy46 的回复:
两个问题: 1,(聚集或者非聚集的)索引页会不会出现页拆分;2,非聚集索引存储时有没有排序 怎么测试验证,谢谢 理不辨不明 中秋快乐,国庆快乐,恭喜发财,广告走开
1.会出现也拆分,之所以会出现也拆分,从基本理论上讲,由于索引采用的是B树,B树的算法中实现了,当某个节点下面的child满的时候,就会进行页分裂,你可以去搜索一下B树和B+树的算法,大致了解一下。另外,除了页拆分,也有页的合并,呵呵,又分有合嘛。 从SQL Server的角度,你想要知道有这个也分裂,以及分裂次数等信息,你可以查询这个动态性能函数:





use master
go

select leaf_allocation_count,     --由于页拆分所引起的页分配的累积计数
       nonleaf_allocation_count,  --叶级以上由页拆分引起的页分配的累积计数
       
       leaf_page_merge_count,   --叶级页合并的累积计数
       nonleaf_page_merge_count --叶级以上页合并的累积计数
from sys.dm_db_index_operational_stats(
db_id('数据库名'),object_id('数据库名.dbo.表名'),索引id,null)
2.非聚集索引在存储时,也会排序,为什么呢? 这也是由B树算法觉得的,要是不排序,就不能那么快的查找数据。就像我们买的技术书籍一样,往往书的最后会有一个按照单词排列的索引,A的B的C的……,肯定是要排序的,可以说排序是索引之所以查找高效的原因。 所以不管是非聚集索引,还是聚集索引,都会按照索引字段进行排序的。
可可可乐 2013-09-27
  • 打赏
  • 举报
回复
新手,学习一下。
RSGOLD001 2013-09-27
  • 打赏
  • 举报
回复
RuneScapeis a game company, Jagdish Fox Game Studios massively multiplayer online role-playing game. LINK:http://www.fitrsgold.com/RS2007.Gold
blackkettle 2013-09-26
  • 打赏
  • 举报
回复
路过,学习了!
专注or全面 2013-09-24
  • 打赏
  • 举报
回复
引用 47 楼 l1000vee 的回复:
没有顺序,会存在页拆分,那么页拆分的原因是什么呢?
有序--》(索引页)拆分
mbugaifc 2013-09-23
  • 打赏
  • 举报
回复
l1000vee 2013-09-23
  • 打赏
  • 举报
回复
没有顺序,会存在页拆分,那么页拆分的原因是什么呢?
leizionly 2013-09-23
  • 打赏
  • 举报
回复
学习下,真的不懂数据库里的页是什么,有多大?索引是什么结构
guguda2008 2013-09-22
  • 打赏
  • 举报
回复
你还在纠结这个问题啊,给你两个研究建议: 使用大数据量数据进行试验,因为极小数据量的查询计划往往不科学 在讨论存储结构的时候,直接看页内数据更为直接 另外MSSQL生成的计划和扫描有些不合理的地方,并不代表其它问题。
专注or全面 2013-09-22
  • 打赏
  • 举报
回复
引用 37 楼 linwaterbin 的回复:
1)会分裂 2)有序
敢问版主,在oracle中,B树索引(OIT表),跟sqlserver中的非聚集索引存储原理一样么?
Daisy__Ben 2013-09-22
  • 打赏
  • 举报
回复
学习下,真的不懂数据库里的页是什么,有多大?索引是什么结构
MYL471954386 2013-09-22
  • 打赏
  • 举报
回复
建议楼主用存储过程来写
习惯性蹭分 2013-09-21
  • 打赏
  • 举报
回复
留名,mark.......
艾阳山 2013-09-19
  • 打赏
  • 举报
回复
这么多回复,为什么就没有质疑?
  • 打赏
  • 举报
回复
留名,关注下
linwaterbin 2013-09-19
  • 打赏
  • 举报
回复
1)会分裂 2)有序
黄_瓜 2013-09-19
  • 打赏
  • 举报
回复
引用 28 楼 perfectaction 的回复:
请问非聚集索引存储时为什么没有排序?
同问
gfhghfjy 2013-09-19
  • 打赏
  • 举报
回复
https://passport.csdn.net/account/active?user=u012176539&active=7e7bf9ad19a08fae7bbbb779e17796ca&from=http%3a%2f%2fdownload.csdn.net%2fdownload%2fxjrwc1717%2f3788112
hgwyl 2013-09-19
  • 打赏
  • 举报
回复
挺有用,留个名先~
Vidor 2013-09-19
  • 打赏
  • 举报
回复
有意思,知道答案的在“问”,不知道答案的在“装”。
加载更多回复(32)

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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