文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发PowerBuilderPowerBuilder应用开发系列讲座(18)
精品推荐
特别推荐
·PowerBuilder实用技巧八则
热点TOP10
·PowerBuilder简介
·在PB中用OLE存取blob类型数据
·在PB中如何实现数据模糊查询
·使用XML技术实现OWC对数据库的展示
·PowerBuilder数据录入同步显示
·导出数据到Excel概述
·PB动态报表格式自由定义的实现
·PB程序中在普通激光打印机上实现条码打印
·PB应用ODBC访问不同数据库
·利用PB数据窗口特征制作进度条
·PowerBuilder应用开发系列讲座(6)
·PB8.0应用程序编译发布技术研究
·PB代码优化
·在PB中用Flash制作Splash封面
·PowerBuilder应用开发系列讲座(39)
·在pb中用语音读金额
·PowerBuilder的数据窗口
·Direct3D9初级教程
·关于PB播放AVI文件的补充
·在PowerBulider中读写IC卡

PowerBuilder应用开发系列讲座(18)

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]


优化数据库查询

  使用PowerBuilder编程时会大量用到数据库查询语句。对于一条复杂的查询语句来说,对相同查询条件的实现一般总可以有多种不同的表达方法,而不同的表达会使数据库的响应速度大相径庭。据统计约有90%的性能问题是由于程序员或用户使用了不恰当的查询语句造成的,因此提高书写SQL语句的质量对软件性能的提高有很大关系。然而查询语句的好坏往往是同实际运行系统的数据库结构、记录的数量等具体情况有关的,我们无法只用几条简单的普遍适用的规律来总结优化查询语句。不过我们首先应当对数据库管理系统最基本的工作规律有一些了解,这样才能使我们在对查询进行时优化有所根据。由于SQL语言是面向结果而不是面向过程的查询语言,所以一般支持SQL语言的大型关系型数据库都需要使用一个基于成本的优化器,为即时查询提供一个最佳的执行策略。对于优化器,输入是一条查询语句,输出是一个执行策略。这个执行策略是执行这个查询所需要的一系列步骤。数据库的反应速度经常就体现在这一个优化算法上。不同的查询策略和查询步骤可使服务器的反应不同,因此采用适当的查询策略可使系统性能大大提高。优化器的优化基于用户对所查询表的内容和其他一些与服务器有关的因素,如Cache大小、Cache策略、I/O大小等。一般来说硬盘访问是成本最高的操作,因此对用户来讲,使优 化器对字段索引进行操作是优化查询的关键。SQL查询语句都可以有很多种执行策略,优化器将估计出全部的执行方法中所需时间最少的也就是所谓成本最低的一种方法。一般来讲,最为重要的选择就是使用什么索引和采用 何种表的连接手段,而所有优化的进行都是基于用户所使用的查询语句中的where子句。

优化分类

优化器对where子句中的优化分为以下几类:

1.搜索参数

  搜索参数的核心就是数据库能否使用表中字段的索引来查询数据,而不必直接查询记录中的数据。如带有=、<、>、>=、<=等操作符的条件查询就可以直接使用索引。如下列条件是搜索参数:

id = "T0001",salary>30000,a = 1 and c = 7。

而下列则不是搜索参数:

salary = commission,dept != 10,salary *12 >= 30000,a = 1 or c = 7。

优化器有时可以将非搜索参数转化为搜索参数,如:

将SELECT name FROM employee WHERE salary BETWEEN $10000 AND $15000
转化为:< SELECT name FROM employee WHERE salary >= $10000 AND salary <= $15000

将SELECT name FROM employee WHERE name like "a%"
转化为:
SELECT name FROM employee WHERE name >= "a" AND name<"b"

将SELECT name FROM employee WHERE salary > $3000 * 12
转化为:
SELECT name FROM employee WHERE salary > $36000

  因此我们在查询中应当提供一些冗余的搜索参数,使优化器有更多的选择余地。如title 和titleauthor两张表是一对多的关系,同样的查询条件我们有以下三种表现方法:

  • SELECT title_id, title FROM titles, titleauthor
     WHERE title.title_id = titleauthor.title_id AND titleauthor.title_id = ‘T81002

  • SELECT title_id, title FROM titles, titleauthor
     WHERE title.title_id = titleauthor.title_id AND title.title_id = ‘T81002

  • SELECT title_id, title FROM titles, titleauthor
     WHERE title.title_id = titleauthor.title_id AND title.title_id = ‘T81002 AND titleauthor.title_id = ‘T81002

  显然三种方法一种比一种要好,因为后者为优化器提供了更多的选择机会。

2.连接条件

  在进行查询连接时优化器将所有连接的方法全部列举出来,计算每一种连接的成本,选择成本最低的一种。如连接时用到的数据无法获得,一般系统会使用平均密度作为依据,估算可能的命中率。

3.‘或’运算条件

  当查询语句中有IN这样的关键词时,优化器将转化其中的内容以OR并列条件。例如:

  SELECT * FROM author WHERE au_lname in (‘Berry,‘Densham)

将转化为:

  SELECT * FROM author WHERE au_lname = ‘Berry or au_lname = ‘Densham

  数据库管理系统将对每一个OR从句进行查询,将所有的结果合并后去掉重复项作为最终结果。

优化技巧

  基于对上述数据库优化器的了解,为确保对我们将要执行的查询语句得以进行准确的优化 ,我们应注意以下几点:


[1] [2] [3] 下一页 




上一篇:PB动态报表格式自由定义的实现

下一篇:PowerBuilder应用开发系列讲座(30)

PowerBuilder应用开发系列讲座(18) 相关文章:
·EZ-USB 68013A开发指南
·QQ空间篮球大图模块:科比系列【2】
·Visual Studio 2005集成开发环境图解
·华为3com系列产品配置手册汇总
·每周电脑应用技巧荟萃
·英文字体创意设计及应用作品欣赏
·Windows XP 的超级应用技巧28例
·Windows XP最新应用技巧六则
·QQ空间篮球大图模块:科比系列【3】
·windows 2003服务器配置VPN实现各种网络环境VSS协同开发
PowerBuilder应用开发系列讲座(18) 相关软件:
·婚育视频讲座-新婚ABC
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·婚育视频讲座-避孕套趣话
·SQL Server 2000 基础系列课程视频
·婚育视频讲座-爱的奇迹
·中国少年儿童智力开发百科全书(上中下)高清PDF全彩图书
·自我按摩系列
·鬼古女悬疑系列
·罗伯特清崎 富爸爸穷爸爸讲座
·余世维《成功经理人讲座》完整电子书

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot