`

大数据量查询的优化(转载)

阅读更多

http://visualcatsharp.iteye.com/blog/283705

感谢visualcatsharp,学习中

某个库中有一个论坛主帖表,每天增加数千的数据,现在整个表的数据量已经是百万级。由于论坛不断升级,增加了N个字段,为了实现良好的扩展性,将某些字段移到了一个子表中,而子表中的某个字段又是外键关联另一个表。没有添加任何非聚集索引。
   
当使用top查询N条数据的时候,就算三个表之间进行关联查询,由于服务器性能出众和SQL Server 2005对大数据量的处理能力的提升,查询时间都能在个位数下;但当需要进行分页查询的时候(使用select …where id not in (selet …) 的方式),竟然数十秒甚至几分钟都完成不了查询。

   
分析一下有什么地方可以优化的:

1
以前是两个表,一个表是百万级数据,另一个表只有几条固定的数据;现在是两个百万级的数据表,再加上一个只有几条固定数据的表,两个百万级别的表进行关联查询,性能肯定有影响。

2
无论是两个表还是三个表,表与表之间的关联是写在视图里的,是否可以创建索引视图进行优化?

3
查询的时候大多数会加入两个以上的字段进行条件查询,亦会加入一到两个的字段进行排序,在这些字段上创建单独或复合的非聚集索引应该可以得到较大的性能提升。

4
查询语句是否导致了全表扫描?

结果:

1
将作为条件查询的字段放在主表里,子表只放一些基本上不会作为条件查询的字段,从而可以使三个表关联查询的情况只发生于查询单条数据。

2
这个查询所使用的视图并没有指定查询条件,因此索引视图无用武之地

3
因为由于需求的原因,经常使用的数据占了表数据量的90%左右,经测试,对这些字段添加非聚集索引对性能提升影响不大;而对两个常用的排序字段(创建时间,最后更新时间)分别添加单独的索引,并对这两个字段添加复合索引,对性能的提高的影响是非常大的。

4
经过分析,这个查询中不存在全表扫描。

       
经过以上优化,直接在数据库执行对论坛帖子查询的存储过程(整个系统对数据库的操作大部分都是使用存储过程),无论是查询top N条数据,还是进行每页50-200条的分页查询,经肉眼观察都在1秒内完成。至于具体详细的查询时间,并没有用SQL Profiler监测。优化后,就算执行千万级的查询,查询也不会太费劲。

分享到:
评论

相关推荐

    高效前端:Web高效编程与优化实践_机械工业出版社; 第1版 (2018年1月1日) 完整版-未加密

    全书共7章,内容从逻辑上大致可以分为两大类:第一类,偏向实践,围绕HTML、CSS、JavaScript等传统前端技术,以及PWA等新兴前端技术,讲解如何进行HTML优化、CSS优化、JavaScript优化、页面优化等,以此帮助前端...

    PHP数据缓存技术

    数据缓存是web开发中常用的一种性能优化方法。目前主要文件缓存或者数据库缓存两种形式,数据库缓存数据库不是什么不可能的...相比页面的缓存,结果集是一种“原始数据”不包含格式信息,数据量相对较小,而且可以再进

    大数据离线计算的架构与组件.pdf

    离线计算的特点 (1)数据量巨⼤,保存时间长 (2)在⼤量数据上进⾏复杂的批量运算 (3)数据在计算之前已经完全到位,不会发⽣变化 (4)能够⽅便地查询计算结果 3>.⼤数据离线计算应⽤场景 (1)⼤数据离线计算主要⽤于...

    生意参谋数据分析.docx

    二、实时直播 实时直播更多人关注的是实时概况部分,而对于下面的实时访客很少会点进去看,很大部分原因是这部分的数据不具有直观性。但是它同样有用处。当店铺遭遇恶意点击或者发现店铺流量当天异常增加时,这个...

    i855 Tweaker

    一直以来,X31的内存速度始终停留在DDR266的状态,虽然现在绝大多数服役的都已经是DDR333甚至DDR400的内存了,由于芯片组的限制,X31在性能上被大量的浪费了(稍候的数据就可以让你知道浪费的严重程度) 内存总线...

    数据转换/信号处理中的数据中心对电源的要求探析

     数据中心的耗电量占全球耗电量的1.5%左右,而且还在攀升。对数据中心的供电优化,降低PUE将有助于减少炭排放,减缓全球温度升高。  从下图我们可以看到google数据中心PUE的提升历程,目前已经可以做到1.1以内,...

    大数据的存储和管理.pdf

    ⼤数据的存储和管理 也欢迎⼤家转载本篇⽂章。分享知识,造福⼈民,实现我们中华民族伟⼤复兴! ⼤数据的存储和管理 任何机器都会有物理上的限制:内存容量、硬盘容量、处理器速度等等,我们需要在这些硬件的限制和...

    汽车电动空调的数据采集系统研究

    本文所设计开发的检测系统主要对电动汽车空调运行过程中的四个工程物理量进行检测分析:风机的电压、电流,压缩机端口的高压、低压。本课题来源于某汽车空调系统的开发过程中所需检测系统的设计,主要用于使空调系统...

    人工智能AI、机器学习模型理解.pdf

    ⽋拟合:1 增加特征 2 调整为更加复杂的模型 过拟合:1 增加数据量 2 正则化 上⾯说的是传统机器学习中模型的设计,那么在深度学习中,我们⼜该如何设计?⾸先⼤家要理解⼀点,为什么要"deep"?下⾯⼤家继 续看图。...

    seo教程培训四部曲.docx

    根据这段时间对于两大搜索引擎的研究,虽然说两大搜索引擎的算法都有所变化,但是对于seo人员来说只要把握住SEO优化的几个中心要点系统工作,依然会让自己的网站在平稳发展,甚至有可能对提升排名有意外的惊喜。...

    智能家居方案设计.doc

    6、实现网站访问量达到3万人,B2B、分类信息、博客、论坛、视频网站、问答百科 、新闻软装浏览量10万人,品牌软文行业网站转载300余次。 7、安装网站统计代码,对网站流量等数据进行有效的监控、分析、优化。实现...

    Leadtools_Crack_16

    声明:本产品中文介绍为慧都控件网版权所有,未经慧都公司书面许可,严禁拷贝、转载! 文件格式支持 采用工业标准和专有压缩技术,可同时支持150多种图像文件格式以及sub-格式的加载、保存和转换。另外,采用...

    众大一键自动化采集今日头条Discuz插件 v2.2.zip

    15、已经发布的内容可以推送到百度数据收录接口进行SEO优化,加快网站的百度索引量和收录量 16、采集回来的内容可以做简体和繁体转换、伪原创等二次处理 17、无限量采集,不限采集次数 18、正式版用户永久授权,...

    asp.net知识库

    ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+...

    最好的asp CMS系统科讯CMSV7.0全功能SQL商业版,KesionCMS V7.0最新商业全能版-免费下载

    44、文章页有上一篇,下一篇,长文章可以自动分页,信息量大,适合搜索引擎收录。 45、下载系统采用服务器管理方案,支持Web迅雷,FlashGet联盟等的专用下载,帮助用户轻松建立专业下载网站。 46、全新引入...

    Art2008 CMS 网站管理系统 v3.1.rar

    23、文章页有上一篇,下一篇,长文章可以自动分页,信息量大,适合搜索引擎收录。 24、强大的图片新闻幻灯显示系统,采用FLASH或者纯图片方式,将您的图片文章以融合、百叶窗等多种交替方面幻灯显示,让您的网站与...

    简单的网页内容采集器(C#)

    <br> <br>不足 <br>应用到了正则表达式、网络编程 由于是最简单的东西,所以没有用多线程,没有用其他的优化方法,不支持分页。 测试了一下,获取38条数据,用了700M内存啊。。。。 如果...

    夏茂政府网集成OA完整开源

    夏茂政府网集成OA完整开源版适合于省市县乡行政、事业、团体、学校、企业等单位型网站,本源码可免费转载、使用。logo、网站名等所有参数都在后台设置,无须更改任何代码即可使用。 本系统与1.0版一样,完整免费...

    夏茂政府网集成OA完整版 v2.0

    2.数据库开放,不再加密隐藏数据表; 3.前台管理分文章、图片、视频、下载、新闻、公告、投诉、部门、友情、广告、客服、设置等10多个模块,代码完整; 4.文件上传改用aspupload及aspjpeg组件,自动生成略缩图,且不...

    CMS 网站管理系统 源码

    23、文章页有上一篇,下一篇,长文章可以自动分页,信息量大,适合搜索引擎收录。 24、强大的图片新闻幻灯显示系统,采用FLASH或者纯图片方式,将您的图片文章以融合、百叶窗等多种交替方面幻灯显示,让您的网站与...

Global site tag (gtag.js) - Google Analytics