
sql
pagx007
这个作者很懒,什么都没留下…
展开
-
SQL语言艺术(前言)
IT行业发展的过程中,新技术层出不穷,今天数据处理依然是系统的核心。与以往不同的是,需要处理的数据量程指数级别增长,甚至超过的硬件的增长速度,所以仅仅做到正确处理还不够,必须足够的快。对于数据库的性能问题,开发人员的一惯做法是先写出正确的程序,一旦出现问题,再由DBA来解决,这种做法未能从源头上解决性能问题。首先关注性能问题的应该是开发者,但开发者不一定非常熟悉硬件、DBMS以及各种数据库...原创 2010-03-05 09:59:28 · 117 阅读 · 0 评论 -
SQL语言艺术(十一)精于计谋:挽救响应时间
这章讨论在表设计,程序架构甚至需求都不合理的前提下对复杂SQL的优化数据库的性能依赖于合理的数据库设计,其次依赖于清晰的策略和良好的程序设计。但现实情况往往是发现性能问题后才会进行调优,我们不可避免会遇到糟糕的设计和效率级差的程序...2010-04-12 15:14:34 · 100 阅读 · 0 评论 -
SQL语言艺术(十)集中兵力:应付大数据量
本章讨论数据量增加时面对的特殊挑战,包括如何高效地搜索庞大的表,如何避免数据量稍有增长就可能出现的性能下降在达到目标数据量之前,第一次严重的性能问题通常会出现。当数据量较少时,从最终用户的角度看不出糟糕的查询和糟糕的算法的影响。硬件本身的处理能力会隐藏巨大错误,完整扫描几十万条记录也不到一秒时间,我们可能严重地滥用硬件能力来弥补程序的错误,直到数据量变得相当可观时,真正的错误才被发现...2010-04-06 14:58:51 · 111 阅读 · 0 评论 -
SQL语言艺术(九)多条战线:处理并发
这章讨论如何应对大量并发用户的情况一个测试时很高效的查询可能在大并发情况下执行地很慢,而且当大量语句并发执行,如果SQL语句提交的速度比服务速度要快时,系统性能就会出现严重问题,所有查询都会受到影响,原先较快的查询也会变慢负载增加未必是造成性能问题的原因,它只不过使性能问题暴露出来了而已。此时,建议改善程序,而不是升级硬件修改操作本质上比查询代价更高,不仅牵涉取得数据,还涉...2010-04-01 15:05:48 · 114 阅读 · 0 评论 -
SQL语言艺术(八)认识困难:处理困难
本章讨论对SQL而言实际中经常遇到的困难与相应的解决策略[b][size=medium]看似高效的查询条件[/size][/b]有些选择条件乍一看很高效,但需要稍加修改才能发挥潜力。遇到基于键值的一部分比较等特殊情况,比如信用卡前置码比较,可使用范围条件来表达,并尽量使用下限和上限值[code="sql"]select count(*) from credit_car...2010-04-01 10:01:47 · 114 阅读 · 0 评论 -
SQL语言艺术(七)变换战术:处理层次结构
这章讨论树状结构(hierarchy)与层次数据库(hierarchical database)2010-04-01 09:15:05 · 192 阅读 · 0 评论 -
SQL语言艺术(六)锦囊妙计:认识经典SQL模式
本章讨论存取经过适当规范化的数据时,遇到的9种最经典的情况[b][size=medium]小结果集,源表较少,查询条件直接针对源表[/size][/b]对于典型的OLTP应用,多为返回小结果集的查询。如果过滤条件直接针对源表,我们必须保证这些过滤条件高效,对于重要的字段,考虑加上索引。如果涉及连接多表的情况,需要优化连接顺序,尽快过滤不符合条件的记录。如果统计数据足够精确地反映了表...2010-03-24 14:16:03 · 123 阅读 · 0 评论 -
SQL语言艺术(五)了如指掌:理解物理实现
本章探讨表中数据不同的存储方式,以及特殊的物理实现对性能的影响尽管数据库的物理结构和SQL没有直接的关系,但如何使用SQL却受到这些底层结构的影响在优化数据的物理布局常碰到两个冲突的目标,一个目标是尽量以紧凑的方式存储数据,这有助于查询尽快找到所有数据。另一个目标是尽量将数据分散存储,以便多个线程可以并发写入,不会造成资源争用而互相妨碍[b][size=medium]索引[...2010-03-22 16:53:16 · 146 阅读 · 0 评论 -
SQL语言艺术(四)机动灵活:思考SQL语句
这章深入探讨SQL的双重特性,SQL与数据库引擎的关系以及对优化器的影响关系数据库的出现,要归功于[url=http://en.wikipedia.org/wiki/Edgar_F._Codd]E.F. Codd[/url]的关系理论开创性研究成果。Codd的研究成果为数据库学科提供了坚实的数学基础,简单地讲,关系理论论证了可以通过一组关系运算符来查找满足某些条件的数据,这些关系运算符支持...2010-03-18 15:30:12 · 136 阅读 · 0 评论 -
SQL语言艺术(三)战术部署:建立索引
这章讲解为关键数据提供最高效访问路径的基本策略:建立索引[size=medium][b]打破索引的神话[/b][/size]数据库表的访问突然变慢了?加索引吧。我们听过太多类似的索引能提高访问速度的话了,索引当然不是包治百病的灵丹妙药,先来看看索引带来的问题吧[size=small][b]1.索引是一种尽快访问特定数据的技术,但无法对所有数据实现快速存取[/b][/size...2010-03-09 11:19:47 · 104 阅读 · 0 评论 -
SQL语言艺术(二)发动战争:高效访问数据库
这一章描述了高效访问数据库的基本原则,在战略大局上把握高性能的关键因素[size=medium][b]查询识别[/b][/size]程序设计上应该考虑查询识别,即根据SQL讯速定位到调用该SQL的应用程序代码,有助于定位性能问题[size=medium][b]减少于数据库交互的次数[/b][/size]使用连接池,避免反复建立数据库连接。连接建立后,尽量批量提交SQ...原创 2010-03-07 17:36:47 · 119 阅读 · 0 评论 -
SQL语言艺术(一)制定计划:为性能而设计
第一章强调良好的模型和合理的数据库设计的重要性sql的背后有着关系模型的数学理论做为基础,以前一直以为关系模型指的是一个表通过外键与其它表关联起来,实际却不是这样。关系模型不是因为不同表之间建立了关系,而是因为表内不同字段之间存在关系。几个值就处于表的同一行,它们之间就存在关系。关系理论的关键原理是:关系不包含重复数据,且记录之间没有顺序规范化是关系理论很重要的一部分,它的原理是按...原创 2010-03-06 17:45:21 · 108 阅读 · 0 评论 -
SQL语言艺术(十二)明察秋毫:监控性能
这章讨论通过收集必要的监控数据来获取数据库运行细节,为性能优化做指导[b][size=medium]数据库很慢,通常由5种原因引起:[/size][/b][b]非数据库问题,网络不稳,或主机因某种原因超过负荷[/b][b]整体性能突然下降[/b],有两种情况要考虑,可能是性能真的降低,通常是因为软件升级或硬件配置修改,也可能是突然涌入的查询。第二种情况是开发或设计问题,比如...2010-04-12 16:06:36 · 98 阅读 · 0 评论