知识大全 sql server 2008亿万数据性能优化
Posted 索引
篇首语:人生要事在于树立一个伟大的目标,并决心实现它。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 sql server 2008亿万数据性能优化相关的知识,希望对你有一定的参考价值。
根据设计惯例 查询的时候主子表通过关键词字段关联查询 查询语句如下
select top a word a queryurl a irank a title a baiduurl a itraffic a itraffic b ibaiduindex from zibiao a
with(nolock)
inner join zhubiao b with(nolock) on a word=b word
where a queryurl=
order by b ibaiduindex desc a irank
发现速度很慢 快的时候瞬间 慢的时候长达几分钟 分析sql server的查询执行计划如下
>分析这个执行计划图 主要资源开销是在主表的聚集索引查找 应该是子表根据网址找到关键词后 再到主表中查找关键词对应的指数的这一步比较耗时
因这 个表的更新频率非常高 以为是更新频率太快 导致索引效率降低 于是想到用数据库读写分离的方案 专门拿了一台备用服务器 通过发布订阅的方法 将这两张表发布到备用服务器上 专门在备用服务器上做查询 发现速度并没有得到提升
在csdn上发了一个讨论帖 网友讨论很热烈 sql server的很多版主都有参与讨论 给出的方案也很多 有人说是IO读写瓶颈 于是升级了下服务器 硬盘采用raid 的固态硬盘 内存更是升级到了 G 不过效果仍旧不明显 同样的语句 慢的时候还是需要几十秒
有网友给出的方案 是建议把主表字段放到子表冗余 以减少关联的资源消耗 再结合以上的执行计划图 确实瓶颈是在主表的的聚集索引查找上 于是单独执行了下子表的irank排序语句
select top a word a queryurl a irank a title a baiduurl a itraffic a itraffic from zibiao a
with(nolock)
where a queryurl=
order by a irank
发现执行速度非常快 几乎秒开了 当然irank字段上有建索引的
测试成功 于是将主表的ibaiduindex字段放到子表冗余 并且建立好索引(这里的索引建立是有技巧的) 执行语句
select top a word a queryurl a irank a title a baiduurl a itraffic a itraffic a ibaiduindex from zibiao a
with(nolock)
where a queryurl=
order by a ibaiduindex desc a irank
查询瞬间出来结果 执行计划如下
>这里拿以上这个sql语句来分析 我们该如何建立索引 索引建立包括字段的先后顺序 字段的排序方法 include项都很重要 任何一个弄错 都不能达到好的优化效果
我们肯定需要建立一个组合索引 那么应该组合字段用哪几个呢?这里我的组合字段是 queryurl(这个字段第一 因为我们最先是根据这个字段进行筛选的) ibaiduindex irank
这里要注意下 因为我的固定排序就是ibaiduindex desc irank asc 所以字段的排列顺序应该是 queryurl ibaiduindex irank 同时排序的类别是 ibaiduindex desc irank asc 这里我一开始没注意 ibaiduindex的排序是asc 结果发现执行上面那个SQL语句仍然需要 秒
索引包含项 也很重要 如果不用包含项 索引查找到主键后 还要根据主键去查找其他字段 所以我们需要设置索引包含性列 把除掉索引字段中剩余的其他字段都加进去
cha138/Article/program/SQLServer/201311/22262相关参考
SQLServer性能优化的原则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使SQLServ
数据库工程师:SQLServer2008空间数据初探[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
数据库工程师:SQLServer2008空间数据初探[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
MSSQLServer7.0性能优化指南 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要为数
SQLServer2008数据挖掘查询任务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据挖
SQLServer2008清空数据库日志方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用
知识大全 SQL Server 2008远程链接时SQL数据库不成功怎么办
SQLServer2008远程链接时SQL数据库不成功怎么办 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 SQL Server 2008 数据库镜像部署实例之一 数据库准备
SQLServer2008数据库镜像部署实例之一数据库准备 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 开启SQL Server 2008 R2数据管理新纪元
开启SQLServer2008R2数据管理新纪元 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 解决SQL SERVER 2008数据库表中修改字段后不能保存
解决SQLSERVER2008数据库表中修改字段后不能保存 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一