文档库 最新最全的文档下载
当前位置:文档库 › 企业实施ERP应注重数据库的性能优化_范孝良

企业实施ERP应注重数据库的性能优化_范孝良

企业实施ERP应注重数据库的性能优化_范孝良
企业实施ERP应注重数据库的性能优化_范孝良

第5期(总第132期)

2005年10月机械工程与自动化

M ECHA N ICAL EN GI NEER IN G & AU T O M A T IO N N o.5O ct.

文章编号:1672-6413(2005)05-0072-03

企业实施ERP 应注重数据库的性能优化

范孝良,国秀丽

(华北电力大学,河北 保定 071003)

摘要:在企业信息化过程中,无论是建设ERP 系统还是M IS 以及其它管理信息系统,都需要大型数据库的支撑,但在系统实施之初,企业往往只关注企业业务流程的再设计和系统功能的实现,而忽略数据库性能的优化问题。当系统运行后随着数据量的增长,数据库的规模在不断扩大,数据库的性能问题变得越来越突出,将影响系统的正常工作,严重时将导致系统瘫痪。介绍了数据库性能优化的策略,相信对企业的CI O 等信息管理人员有一定的指导作用。

关键词:ER P;信息化;数据库;性能优化中图分类号:T P 311.13 文献标识码:A

收稿日期:2005-05-16

作者简介:范孝良(1962-),男,河北承德人,副教授,主要研究方向:CIM S 、ERP 、M IS 、PDM 等的研究与开发。

1 优化数据库性能的策略

随着企业信息化的进展,由于数据不断增长带来数据库的规模在不断扩大,同时系统中用户数目也在不断增加,这些都会导致数据库性能问题。如由于数据库中的数据量日益增加,数据库应用系统的使用性能会不断下降,对数据的调用、查询、更新等操作会耗费较长的时间。按照投资优化策略,可以采取以下步骤解决数据库性能问题:1进行正确的数据库逻辑设计,减少存储量;o进行正确的数据库物理设计,减少竞争同一资源的软件个数;?选择高效算法,编写有效的应用程序;?优化数据库内存结构;?必要时优化OS 内存结构;?优化数据库I/O;?必要时优化OS I/O;à必要时优化网络;á必要时优化客户机,或考虑更特殊的解决方案,如Oracle 的多线程服务器等。

[1]

下面就数据库设计、应用程序优化、内存优化、I /O 优化等问题作进一步讨论。2 数据库设计优化

2.1 逻辑数据库规范化问题

一般来说,逻辑数据库设计会满足规范化的前三级标准:1没有重复的组或多值的列;o每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分;?一个非关键字段不能传递

依赖于主关键字段。[2]

遵守这些规则的设计会产生较

少的列和更多的表,减少数据冗余。但表之间的关系也需要通过复杂的合并来处理,这样会降低系统的性能。某种程度上的非规范化可以改善系统的性能,非规范化过程可以根据性能方面的不同考虑用多种不同的方法进行,但以下方法经实践验证往往能提高其性能:1如果规范化设计产生了许多四路或更多路合并关系,就可以考虑在数据库实体(表)中加入重复属性(列);o常用的计算字段(如总计、最大值等)可以考虑存储到数据库实体中;?重新定义实体以减少外部属性数据或行数据的开支。相应的非规范化类型是:1把一个实体(表)分割成两个表(把所有的属性分成两组),这样就把频繁被访问的数据同较少被访问的数据分开了;o把一个实体(表)分割成两个表(把所有的行分成两组),这种方法适用于那些包含大量数据的实体(表),在应用中常要保留历史记录,但是历史记录很少用到,如果数据行是作为子集被逻辑工作组(部门等)访问的,这种方法也是很有好处的。

在考虑设计性能时,到底规范化进行到什么程度,需要权衡效率和潜在问题两者之间的利弊而定。2.2 生成物理数据库问题

要想正确选择基本物理实现策略,必须懂得数据库访问格式和硬件资源的操作特点,主要是内存和磁

盘子系统I/O。[3]这是一个范围广泛的话题,但以下的准则可能会有所帮助:1与每个表列相关的数据类型应该反映数据所需的最小存储空间,特别是对于被索引的列更是如此;o把一个表放在某个物理设备上,再通过Server段把它的部分簇索引放在一个不同的物理设备上,这样能提高性能,尤其是系统采用了多个智能型磁盘控制器和数据分离技术的情况下这样做的好处更加明显;?用Server段把一个频繁使用的大表分割开,并放在两个单独的智能型磁盘控制器的数据库设备上,这样也可以提高性能;?用Server段把文本或图像列的数据存放在一个单独的物理设备上可以提高性能;?当数据库比较庞大时,可以考虑形成历史库。

3 应用程序优化

应用程序优化可以从两方面考虑:一方面优化应用中的SQ L语句;另一方面,将程序逻辑统一到数据库系统中,使数据操作在功能强大的服务器上运行。

3.1 指定优化器

优化器是关系数据库管理系统的一部分,用于优化给定的SQL语句,以提高访问数据的效率。优化器大致分为基于规则的优化器和基于开销的优化器两种。

3.2 合理使用索引

索引是数据库中重要的数据结构,其根本目的是为了提高查询效率。索引的使用原则如下:1在经常进行连接但没有指定为外键的列上建立索引,不经常连接的字段由优化器自动生成索引;o在频繁进行排序或分组的列上建立索引;?在条件表达式中经常用到的不同值较多的列上建立检索,而在不同值少的列上不建立索引;?如果待排序的列有多个,可以在这些列上建立复合索引;?在可疑的索引上使用系统工具进行检查,如果一个使用索引的查询不明原因地慢下来,可以试着用系统工具检查索引的完整性,必要时进行修复,另外,当数据库表更新大量数据后,删除并重建索引可以提高查询速度。

3.3 使用优化的SQL语句

在软件业有句名言叫“用80%的时间写出20%的代码”,可见写程序时重要的并非数量的多少而是质量的高低。所谓优化的SQL语句是指写出的SQL语句效率高、执行快。尽量利用索引,写出WHERE子句可优化的代码。一般应遵循以下原则:[4]

3.3.1 尽量不要对列进行操作

WHERE子句中对列的任何操作结果都是在SQL运行时逐列计算得到的,如果这些结果在查询编译时就能得到,那么就可以被SQL优化器优化,使用索引,避免表搜索。

3.3.2 避免相关子查询

查询嵌套层次越多,效率越低,因此应当尽量避免子查询,如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。

3.3.3 避免使用LIKE、IN等关键字

错误地使用LIKE语句甚至会造成无法使用索引,如:

select*fr om record w her e id like‘%23%'

这里由于通配符(%)在搜寻词首出现,因此数据库不会使用id索引。下面的SQL语句执行较快: Select from record wh ere id>=‘23000’(id列的定义为char (5))

同理尽量用EXISTS代替IN关键字,可以更好地利用优化器对SQL语句作出优化处理。

3.3.4 拆分语句

语句并不是越简洁越好,有时还要以牺牲语句的复杂度来换取效率。常用的方式有:UNION,临时表,存储过程。例如以下语句:

select*fr om record w her e id in(‘0’,‘l’)

最好改写成:

(select*from record w her e id in=‘0’)U NION

select*fr om record w her e id=‘l’)

原因是w here条件中的‘in’在逻辑上相当于‘or’,所以语法分析器会将in(‘0’,‘l’)转化为id=‘0’or id=‘1’来执行。

为了提高效率,有时候无法简单地用UNION来解决问题,这时可以考虑用存储过程。

3.4 将程序逻辑统一到数据库系统中

目前的数据库产品允许应用系统存储并激活数据库系统的过程,如存储过程和触发器,使得数据库系统能够和程序逻辑相互结合,使C/S网络能将对数据库的操作放在后台数据库服务器中处理,以此提高处理速度。

4 内存优化

在RDBM S中,优化内存常意味着优化系统全局区域(SGA),它包含监视和优化共享区和数据库缓冲区。处理内存的方法与RDBM S的体系结构直接相关,不论发生哪一种情况,RDBM S都必须与操作系统紧密集成,以便高效处理各种资源请求。

5 I/O优化

I/O优化与前面讨论的内存优化和应用程序优化

?

73

?

 2005年第5期 范孝良,等:企业实施ERP应注重数据库的性能优化

有关。从数据库物理结构设计的角度,应考虑优化表空间和数据文件、范围和块、回滚段和重做日志等问题。6 结束语

数据库性能的优化是一个不断摸索、总结的过程化技术,针对不同的具体情况做适当调整,选择合理的优化措施。在实践中必须分析影响性能的各方面因素,综合软硬件优势。在具体优化时,要分析系统情况,找出造成性能低下的原因和可以利用的资源,并采取相应的优化手段提高系统效率。另外,优化不是一劳永逸的,一旦系统有了变化,就要采取相应的手段重新优化。本文仅就数据库设计、应用程序优化、内

存优化、I/O 优化等问题进行了探讨。相信本文所述不仅对M IS 等管理信息系统的软件开发者,而且对使用者都有一定的指导作用。

参考文献:

[1] 刘波,李陶深,杨柳,等.M IS 中数据库性能优化的研究

[J].软件技术与数据库,2001(7):98-100.

[2] 萨师煊,王珊.数据库系统概论[M ].北京:高等教育出版

社,2000.

[3] 卢敏.浅谈数据库性能优化[J ].丽水师范专科学校学报,

2003(4):67-69.

[4] 吕华,杜忠军.数据库性能优化[J].计算机应用,2003

(6):172-174.

Paying Attention to the Optimization of Database Property

in Enterprise Implementing ERP

FAN Xiao -liang ,GUO Xiu -li

(North Chin a Electric Pow er University,Baod ing 071003,Ch ina)

Abstract :In the pr ocess of enter pr ise's infor mation constr uction,t he suppo r t of lar ge-scale database is needed no matt er building ERP sy st em o r M IS and other s.But enter pr ise oft en just pay close attentio n t o the redesign of enter pr ise's business pr ocedur e and the r ealizat ion o f ent erprise's functio n in the beg inning of system implement and neg lect the optim izatio n pr oblem of database pro per ty.W ith the g ro wth o f dat a quantit y after the system is o per ated,the scale o f the dat aba se is ex panding co nst ant ly and the pro per ty pr oblem o f the dat aba se becomes mo re and mor e outstanding.T hese w ill gener ally influence the no rmal w or k o f the system and ev en lead to sy stem par alysis when being serious.T his pa per intro duces t he str ateg ies o f optimizing data base pro per ty.Believ e that this paper has cert ain directiv e sig nificance t o such administr ative staff o f infor matio n as CI O o f ent erprises etc.Key words :ERP ;infor matizat ion;dat abase;pr oper ty o pt imization

(上接第71页)

参考文献:

[1] 龚卓蓉.V eg a 程序设计[M ].北京:国防工业出版社,

2002.

[2] 龚卓蓉.Ly nX 图形界面[M ].北京:国防工业出版社,

2002.

Realization of Real -time Visual Simulation for Onshore

Container Crane Training Simulator

HU Qi -lin ,WANG Chong -hua

(School of Logistic E ngineering,S hanghai M aritime U nivers ity,Shanghai 200135,China)

Abstract :T his paper intr oduces the method o f using M ultiGen Cr eato r soft war e to build 3D mo dels,and the using of V ega soft war e in o rder t o drive the 3D mo dels for the O nsho r e Container Crane T raining Simulato r's r eal-tim e simulat ion.Fr om this ar ticle,y ou could see that most o f the at tentio n has been paid on t he co llisio n det ect ion and the r ealiza tio n o f 3D mo dels dr iv e pro gr am,also ,some o f the questio ns encounter ed fr om this simulation have been discussed.Key words :visual simulat ion;M ultiGen Creat or ;V eg a;tr aining simulat or

?

74? 机械工程与自动化 2005年第5期 

如何优化数据库,提高查询效率

龙源期刊网 https://www.wendangku.net/doc/649355993.html, 如何优化数据库,提高查询效率 作者:代鸿彬 来源:《学习与科普》2019年第10期 摘要:随着信息时代的到来,生活和工作当中已经无法避免的需要和计算机打交道,和 计算机打交道的同时就必须要用到数据库。数据库系统是计算机当中的一项重要系统,储存在用户的关键信息,不仅对个人影响很大,同时对企事业单位也有着重要影响。 关键词:信息时代;数据库;索引 数据库是信息的载体也是数据的最佳表现形式,它的共享性导致了数据会被大量的搜索查询,为了提高查询的效率,就不得不对数据库进行优化。 一、利用索引进行优化。 索引是数据库的重要组成部分,也是使用者根据需要进行查询最直接的方法,优化索引可以提高查询的效率。当前的数据库当中大部分还是使用国际商业机器公司以前的索引顺序存取方法,对于用户来说肯定会选择方便、快捷的索引方式,怎么方便怎么来。在建立索引的时候针对不同的内容,需要建立不同的连接方式,但是随着用户的增多,查询内容和方向的多元化,这就造成了在实际工作当中经常会有使用频率很少的索引出现,甚至也会出现没有查询所需的索引,这种情况可以通过查询优化器进行自动生成的索引进行查询。对于使用频率较为频繁的列,需要对其进行排序或者分组的列上建立索引时,要优化索引提高效率,对于使用频率很少的列可以不建立索引。 二、简化排序进行优化。 对于部分企事业单位需要排序的内容很多时,就要使用大型数据表来满足查询需求,但是大型数据表涉及的内容很多,为了避免出现重复排序的现象需要对数据表进行简化。在大型数据表当中有一部分的内容可以自动进行排序的次序输出,这时就可以直接利用查询优化器进行优化,将复杂的排序简单化,从而提高索引查询效率。需要排序的列对索引优化影响较大,就像语言当中的ORDER BY 或者GROUP BY句子当中的列次序和索引当中的列次序基本是不同的,但是排序的列可通过表的不同形式表现出来。通过简化排序避免了重复的排序,并且将数据库进行了合理的合并。如果不进行简化排序,就需要将排序的范围进行缩小简化,从而提高查询使用的效率。 三、大型表行数据库存取的合理消除。 数据库系统的存储量是有上限的,所有的索引内容都占有数据库空间,尤其是大型数据表占有的空间更大,将会造成索引时间变长。但是大型表行数据有些内容是不必要的,在进行索引查詢时,数据表当中的存取顺序对查询的效率有直接的影响。例如需要采用存取策略时,通

ERP项目实施成功案例

ERP项目实施成功案例 江铃汽车股份有限公司是国家重点企业江铃汽车集团的核心企业,成立于1993年,主导产品有全顺系列、五十铃N系列、TFR三大系列汽车品种,以及国内一流的4J系列柴油发动机。 江铃从1996年开始实施QAD的企业资源计划(ERP)项目,至今已经成功应用了全套QAD商务系统软件,所有36个模块覆盖了企业生产经营的各个主要业务流程,实现了销售开发、计划财务、制造质量、采购供应、人事企业管理五大运行系统的计算机化,建立了少层次、扁平化、炬阵式、高效率的现代化企业管理模式。 随着信息技术和因特网的发展,电子商务的出现带来了一种崭新的商业模式同时也为企业的发展提供了新的机遇。江铃准确及时高起点的抓住了这个机遇,在原有日趋完善的MFG/FPRO的基础上,自行开发并成功实施了有自身特色的电子商务系统。 新的商务秩序源自QAD 江铃自主开发的电子商务解决方案,基于QAD的MFG/PRO。该解决方案在企业经营管理上的应用使江铃总公司与代理商和供应商之间建立了一种崭新的商务秩序,信息的传递方式由阶层型变为水平型,大大促进了企业的经济效率的提高。 QAD的MFG/PRO长于供应链协作,提供从原材料采购、产品制造与分销、客户服务到财务管理的全方位综合型支持。这套软件的系统设计不单是考虑了单一工厂的运作,而且将其重点放在了面向整个集团的综合管理,协调各环节、各部门之间的运作,正是由于有了这个确定的定位,为江铃发展电子商务系统打下了良好的基础。 日常销售业务完成在线化 在江铃的电子商务解决方案中,面向外部伙伴的销售系统和采购系统很有代表性。 在江铃的销售系统中,通过QAD的数据库与Oracle数据库的结合使用,总公司内部QAD管理系统提供的信息与经销商提供的交易信息得到迅速传递和交流,实现了总公司与各地经销商日常业务的完全在线化,充分满足了企业组织管理和交易管理的需求(请参见示意图) 此系统包括了9个基本模块:通知公告的网上发布、与销售有关部门的基本情况介绍、与销售有关的基本知识的介绍、与销售有关部门制定的政策法规的介绍、动态商情的介绍、日常交易的网上实现、总公司对经销商反映意见的回复、经销商之间的经验交流、产品目录、维修站目录、代理商目录、银行账户等基本信息的网上发布。 在进行交易之前,经销商可以通过”可发车库存查询”和”资金余额查询”功能,查询总公司的可发车库存(来自QAD库存数据)和经销商本身的应收帐余额和汇票余额等信息,用于决定是否向总公司发货及是否需开出汇票。随后,经销商通过“收彻地点输”功能,维护货物发往地点的信息。此地点将随着订单一起导入QAD系统,总公司运输部门将整车送致此地点。然后,经销商使用”汇票输入”维护汇票信息,同时可以使用”汇票查询”查询所有开给总公司的汇票信息,在以上工作完毕之后,经销商就可以使用”订单输入”功能,输入订货合同。总公司收到此合同后,经过确认,将订单导入QAD系统,总公司内部开始整车发运流程。整个发运流程都将通过”订单查询”报表发布给经销商,经销商还可以随时查看整车发运过程的实时进展。经销商还可以查询总发车明细、开票明细等信息。在此系统中,还包括“车辆用户档案输入与查”“计划输入与查询”、”经销商库存及销售报表输入与查询”等功能。 由此,总公司与代理商的关系从松散变得紧密。该系统将分布在全国各地的经销商每天的经营情况,包括订单、汇票,计划等通过网络准确、自动地汇总到总公司的数据库,实现企业内部数据汇总和自动化。总公司可以通过网络对代理商发出指令,或对其业务活动进行指导。

大数据库优化(SQLServer)

SQL SERVER性能优化综述 近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在 网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或 者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以 前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。 一、分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能 性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能 有各种需求的量化的指标。 另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统)。 二、设计阶段 设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能 调优的过程—数据库设计。 在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效 率的代码,为整个系统的性能打下良好的基础。 以下是性能要求设计阶段需要注意的: 1、数据库逻辑设计的规范化 数据库逻辑设计的规范化就是我们一般所说的范式,我们可以这样来简单理解范式: 第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组 成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三

海尔企业ERP实施案例分析

一 ERP定义: ERP是Enterprise Resource Planning (企业资源计划)简称,是上个世纪90年代美国一家IT公司根据当时计算机信息、IT技术发展及企业对供应链管理的需求,预测在今后信息时代企业管理信息系统的发展趋势和即将发生变革,而提出了这个概念。一种ERP系统ERP是针对物资资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软件。一个由 Gartner Group 开发的概念,描述下一代制造商业系统和制造资源计划(MRP II)软件。它将包含客户/服务架构,使用图形用户接口,应用开放系统制作。除了已有的标准功能,它还包括其它特性,如品质、过程运作管理、以及调整报告等。特别是,ERP采用的基础技术将同时给用户软件和硬件两方面的独立性从而更加容易升级。ERP的关键在于所有用户能够裁剪其应用,因而具有天然的易用性。 二海尔企业: 简介: 海尔是世界白色家电第一品牌,1984年创立于中国青岛。截至2009年,海尔在全球建立了29个制造基地,8个综合研发中心,19个海外贸易公司,全球员工超过6万人。2009年,海尔全球营业额实现1243亿元,品牌价值812亿元,连续8年蝉联中国最有价值品牌榜首。海尔积极履行社会责任,援建129所希望小学,制作212集科教动画片《海尔兄弟》,是2008年北

京奥运会全球唯一白电赞助商。美国天文学家海尔(Georage Ellery Hale,1868-1938)著有《新的星空》《宇宙的深度》等。 三分析海尔企业ERP: 1ERP的使用适合于海尔集团的发展现代化战略,对整个物流,供应链,企业现代化管理有着重大改革意义: 名牌战略阶段多元化战略阶段国际化战略阶段全球化品牌战略阶段 发展内向物流发展外向物 促进管理一体化 1体现对整个供应链资源进行管理的思想2体现精益生产、同步工程和敏捷制造思想3体现事先计划与事中控制的思想 2 海尔企业选择了强大的ERP软件 国际ERP软件A3 协同工作套件W3 管理软件金色快车GE

数据库性能优化基础步骤

1性能优化基本步骤 1.1定位跟踪耗费资源较多的SQL语句步骤 1.1.1 通过SQL查询 (1): 查询出最耗费资源的SQL语句 select t1.SID, t1.SERIAL#, tt.HASH_VALUE, tt.ADDRESS, tt.BUFFER_GETS, --读内存次数 tt.DISK_READS, --磁盘物理读次数 tt.EXECUTIONS, --语句的执行次数 tt.BUFFER_GETS / tt.EXECUTIONS, --平均读内存次数 tt.SQL_FULLTEXT from v$sqlareatt, v$session t1 where (tt.BUFFER_GETS>100000 or tt.DISK_READS>100000) and tt.HASH_VALUE = t1.SQL_HASH_VALUE and tt.ADDRESS = t1.SQL_ADDRESS and t1.STATUS = 'ACTIVE' orderby tt.BUFFER_GETS desc (2):根据客户端程序发出的SQL来定位需要跟踪的session select s.sid sid, s.SERIAL# "serial#", https://www.wendangku.net/doc/649355993.html,ername, s.machine, s.program, s.server, s.LOGON_TIME from v$session s 1.1.2 通过Oracle提供的SQL TRACE进行SQL跟踪 (1):跟踪前设定相应参数 1.查询得到需要跟踪的session 2.打开时间开关

Show parameter timed_statistics alter session set timed_statistics=true; execsys.dbms_system.set_bool_param_in_session(sid => 8,serial# => 3,parnam => 'timed_statistics',bval => true); 3.设置跟踪文件存放位置 Show parameter user_dump_dest alter system set user_dump_dest='c:\temp'; (2):启动跟踪功能并让系统运行一段时间 alter session set sql_trace=true; execsys.dbms_system.set_sql_trace_in_session(8, 3, true); (3):关闭跟踪功能 alter session set sql_trace=false; execsys.dbms_system.set_sql_trace_in_session(8, 3, false); (4):格式化跟踪数据文件,并分析跟踪结果文件 tkprof dsdb2_ora_18468.trc dsdb2_trace.txt EXPLAIN=SCOTT/TIGER tkprof各参数含义: ' traced_file ' 指定输入文件,即oracle产生的trace文件 'formatted_file'指定输出文件,即我们想得到的易于理解的格式化文件 'EXPLAIN' 利用哪个用户对trace文件中的sql进行分析得到该sql语句的执行计划1.2查看分析执行计划 1.2.1查看执行计划 (1):Sqlplus中可按F5查看执行计划 (2):使用执行计划表进行查看 使用语句将SQL语句的执行计划装入plan_table表,然后进行分析查看explainplansetstatement_id = 'dd'into plan_table for select t.type_name,t.source_value,t.standard_value from ODS_STD_COMP t,ODS_STD_COMP_BAK t1 where t.system_id = t1.system_id and t.type = t1.type and t.source_value = t1.source_value (3):示例演示 1.让ORALCE自动选择最优的执行计划,不人为干预 explainplansetstatement_id = 'dd'into plan_table for select t.type_name,t.source_value,t.standard_value from ODS_STD_COMP t,ODS_STD_COMP_BAK t1 where t.system_id = t1.system_id and t.type = t1.type and t.source_value = t1.source_value

[方案]联想实施ERP项目案例分析

[方案]联想实施ERP项目案例分析联想实施ERP项目台前幕后 1(联想ERP实施历程 1998年11月9日,联想集团ERP项目实施启动会在联想集团总部大会议室召开,标志着ERP项目在联想集团正式启动运行。 1998年11月23日,联想集团ERP项目誓师大会在海淀工人俱乐部召开,柳传志、李勤参加了会议,吹响了联想ERP变革管理的号角。 1998年11月24日,“联想集团实施ERP新闻发布会及签约仪式”在中国大饭店举行,联想、SAP、德勤三方正式对外宣布联想集团开始实施ERP,公然把自己放在新闻舆论的面前,表明了联想ERP项目“只能成功,不能失败”的坚定决心。 2000年1月5日,联想ERP系统正式上线。 2002年1月5日,联想集团ERP系统正常运营两周年。 2.柳传志的决策 2.1老MIS与京港整合 联想ERP项目的最初动机源于1998年集团的京港整合问题。 ERP实施前,联想非集成化的老MIS已经不能支撑集团日益庞大的数据处理。老MIS的集成性和实时性都落后于新发展的需要。MIS老矣,不堪重负,系统慢、经常掉网、经常丢数据使得财务的结账工作周期长,时效性和准确性都难以保障。 ERP实施前的1998年,联想香港公司是一个独立运作的部分,惠阳和深圳的公司分属香港管辖,其信息系统不由北京的MIS部门统一管理,分割而治的信息系统造成整个集团的MIS难以集成。香港平台和北京平台所用的核算指标和管理体系不兼容,京港双方的指标口径不一致,导致集团在做财务预算和编制财务报表时经常出现问题。联想回忆说:1998年做1999年预算时,集团财务部门得出的数据根本不能通过集团企划办的推敲。那时集团100多个人负责财务结算,需要28天的时

数据库查询优化实验报告_SQLServer2008

SQL Server 2008数据查询的优化方法研究摘要 随着数据存储需求的日益增长,对关系数据的管理和访问就成为数据库技术必须解决的问题。本文主要论述关系数据库查询优化技术,并从它的优化技术进行深入探讨,对系统实现做了一定的论述,并进行了部分的程序实现。 关键词:数据库查询系统优化 引言 SQLServer是是由微软公司开发的基于Windows操作系统的关系型数据库管理系统,它是一个全面的、集成的、端到端的数据解决方案,为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。目前,许多中小型企业的数据库应用系统都是用SQLServer作为后台数据库管理系统设计开发的。设计一个应用系统并不难,但是要想使系统达到最优化的性能并不是一件容易的事。根据多年的实践,由于初期的数据库中表的记录数比较少,性能不会有太大问题,但数据积累到一定程度,达到数百万甚至上千万条,全面扫描一次往往需要数十分钟,甚至数小时。20%的代码用去了80%的时间,这是程序设计中的一个著名定律,在数据库应用程序中也同样如此。如果用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟。而且我们知道,目前数据库系统应用中,查询操作占了绝大多数,查询优化成为数据库性能优化最为重要的手段之一。 影响查询效率的因素 SQLServer处理查询计划的过程是这样的:在做完查询语句的词法、语法检查之后,将语句提交给SQLServer的查询优化器,查询优化器通过检查索引的存在性、有效性和基于列的统计数据来决定如何处理扫描、检索和连接,并生成若干执行计划,然后通过分析执行开销来评估每个执行计划,从中选出开销最小的执行计划,由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。所以,SQLServer中影响查询效率的因素主要有以下几种: 1.没有索引或者没有用到索引。索引是数据库中重要的数据结构,使用索引的目的是避免全表扫描,减少磁盘I/O,以加快查询速度。 2.没有创建计算列导致查询不优化。 3.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)。 4.返回了不必要的行和列。 5.查询语句不好,没有优化。其中包括:查询条件中操作符使用是否得当;查询条件中的数据类型是否兼容;对多个表查询时,数据表的次序是否合理;多个选择条件查询时,选择条件的次序是否合理;是否合理安排联接选择运算等。 SQLServer数据查询优化方法 1、避免使用不兼容的数据类型。例如float和int、char和varchar、binary和varbinary 是不兼容的。数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作。例如: select name from employee where salary >60000

中鼎集团实施ERP案例分析

中鼎集团实施ERP案例分析 安徽中鼎(股份)集团公司以产业经营和资本运营互动发展为手段,以电子商务为获取信息的技术条件,通过实施ERP系统,充分发挥自身优势,不断做强、做大、做优。本案例从中鼎的经营模式和市场背景入手做分析,制定出实施的计划方案,为ERP 科学合理的实施提供了保障。 一、企业简介 安徽中鼎(股份)集团公司的前身是宁国密封件厂(以下简称"中鼎公司")。经过二十年的发展壮大,中鼎公司创下了国内橡胶密封件行业的:"装备最先进"、"技术最全面"、"管理最先进"、"生产能力最大"、"经济效益最好"的五项之最。其产品主要是为国内、外一些著名汽车制造企业提供配套密封件。2000年实现销售收入1.39亿元,利税3200万元;2001年实现销售收入2.43亿元,比去年增长约75%,利税将达到5100万元,比去年增长约59%。

二、经营模式 中鼎公司的生产类型为混合型制造模式,前期配方、炼胶属流程行业的特点;后期加工、装配又属离散行业的特点。中鼎公司的主导产品是汽车密封件,其产品种类繁多,规格复杂,属典型的多品种、小批量生产类型。产品主要是按订单制造,即按客户订单驱动,以销定产。由于上述特点,使中鼎公司的生产经营管理:一方面,市场需求波动大,经营具有明显的随机性;另一方面,主机厂订货的多样性和唯时性,为生产计划、库存安排,造成较大困难和压力。 中鼎公司的生产能力不仅受设备能力的制约,而且还受到自制模具能力的制约,使得订单能力审核十分困难,并成为订单执行的关键瓶颈问题。 中鼎公司的组织结构是事业部的管理模式,下设8个产品事业部和4个车间(五金、炼胶、预成型、模具)。车间为产品事业部提供公共支持,如提供:胶料、预成型橡胶制品、骨架和工模具。各事业部与车间之间的供货/领料实行内部核算。

erp案例

大宝ERP实施案例分析 一、大宝公司简介 北京大宝化妆品有限公司(以下简称"大宝")是国家专业生产化妆品的大型国有骨干企业。大宝集团现有职工1210名,集团公司拥有1个新产品开发研究所、7个生产车间、18条生产流水线,1个美容保健品公司、1个美容学校、1个广告公司、1个商业批发公司。是一个集科研、生产、贸易于一体的现代化企业。 二、大宝上线ERP的起因 (1)加入WTO后企业适应市场竞争的需要。面对WTO带来的机遇和挑战,相信每一个中国企业都不会等闲视之。入关后,中国的企业不要说冲出国门,到国际市场上去与跨国公司争夺国际市场份额,就国内市场,对中国大多数企业来说,能保持现有地位,已属不易。这决不是危言耸听,以中国企业目前的现状,与国外有实力的企业相比较,我们的优势在哪里:比资金实力,我们明显不足;比产品科研开发实力及成果转化能力,我们与国外企业有好几倍的差距;比经营机制、激励机制,我们绝大多数企业都还不完备;比管理基础、信息化水平,这又恰恰是咱们最薄弱的环节。 (2)企业自身发展的需要,关键是ERP先进的管理思想,将企业外部客户的需求、企业内部的生产制造流程以及供应商资源整合在了一起,体现了以客户为中心、整合经营的宗旨。公司实施ERP,考虑了几个方面的原因:集团业务高速增长,原有的管理信息系统已经成为公司发展的瓶颈;国外竞争加剧,提升公司核心竞争力的需要;集团的整体战略需要管理信息系统与国际先进水平接轨。 (3)企业顺应知识经济时代的需要蒸汽机和电的发明与使用,把人类社会从农业经济时代推向工业经济时代;今天,微电子技术的进步、计算机的发明与使用,以及Internet的迅速推广,将人类社会从工业经济时代逐步推向知识经济时代。知识要素中最核心的是信息资源和网络技术,在知识要素生产力中占到了将近40%的比例。作为知识经济的典型代表,ERP系统就是运用知识的能力直接影响企业的创新、生存与发展,并通过各种形式、不同内容和不同程度地使企业全员接受新经济、新思想、新理论和新方法的培训教育。 现在ERP已越来越多地影响企业的各个环节,包括企业人事、财务、物资管理、生产、供应链、销售环节等等。知识经济时代的来临,对企业来说意味着变革和创新,而ERP正迎合了这一特征。 (4)企业深化改革的需要中国企业尤其是国有企业,要建立现代企业制度,一个最根本的因素就是体制改革。体制改革的首要目标就是产权明晰和权责分明。解决了以上问题后,一个现实的问题就摆在企业家的面前———如何提高企业现有管理水平和业务流程? 通过实施ERP系统,可以帮助企业在原来改革成果的基础上,深入挖掘企业内部资源和外部资源,为我所用。在企业内部,产、供、销、人、财、物各环节通过ERP提供的功能可以完全实现电脑化、集成化、自动化,为管理人员提供强有力的管理工具;在企业外部,与SCM、CRM整合后的ERP系统可以实现企业与供应商和客户的信息自动交互,从而提高整个采购环节和客户关系管理的效率,同时,通过ERP系统还可以与第三方的B2B网站全面链接,实现网上的电子商务,从而减少大量中间成本,提高企业的市场竞争能力。因此可以说,ERP是我国企业尤其是国有企业深化改革的需要,对巩固企业改革成果、进一步挖掘资源潜力具有重要意义。 (5)民族软件事业发展的需要美国管理学权威彼得·德鲁克说,知识是比原材料、资本、劳动力、汇率更重要的经济因素。在新古典经济增长理论中,经济的增长除了资金的投入和劳动投入引起的增长以外,其他的都叫知识要素的增长率。凝聚着知识,或者说知识含量很大的ERP软件技术和产品将在企业中起到关键性作用,并且为中国的经济增长作出贡献。据称,全球500强企业的80%已购买了ERP软件,目前正在推行全球化供应链管理技术和敏捷化后勤系统。此外,许多小型企业也在纷纷应用ERP系统。作为一个泱泱大国,要让国内企业顺应知识经济时代发展的潮流,中国不能没有自己的、拥有自主产权的ERP软件产品。好在中国目前已经拥有了自己的ERP制造厂家,并不断得到迅速发展,如和佳、利玛、金思维等公

MS_SQL_Server_数据库性能优化方法总结

1.列出数据库服务器、Web服务器的基本的硬件配置,如CPU、内存等。 2.检查数据库服务器是否真正启用了AWE内存。 (1) 启用AWE:数据库服务器检查C:\boot.ini文件,需要配置"/PAE"(*重启电脑才能生效),如下: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /PAE (2) 开启sql server 服务用户的,内存中锁定页面权限 (*重启电脑才能生效)在“服务管理”中查看 SQL SERVER 服务登录账户,默认是本地系统帐户(System)。然后在运行 gpedit.msc ,选择计算机配置->windows 设置->安全设置->本地策略->用户权限分配->内存中锁定页面。添加SQL SERVER服务的登录用户到里面去。 (3)启用数据库AWE内存,以服务器8G内存为例,一般设置如下,最小2G,最大6G(重启SQL SERVER服务即可): (4)跟踪数据库性能“Total Server Memory ”的使用情况,看看数据库真正使 用的内存,越接近为数据库分配的最大内存越好。 或使用如下语句,查询数据库的内存使用情况: use master go select * from sysperfinfo where counter_name like '%Total Server Memory(KB)%' go 3.Web服务器监控项:

数据库优化

关于数据库优化方面的文章很多,但是有的写的似是而非,有的不切实际,对一个数据库来说,只能做到更优,不可能最优,并且由于实际需求不同,优化方案还是有所差异,根据实际需要关心的方面(速度、存储空间、可维护性、可拓展性)来优化数据库,而这些方面往往又是相互矛盾的,下面结合网上的一些看法和自己的一些观点做个总结。 一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。 一、分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能有各种需求的量化的指标。 另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统)。 二、设计阶段 设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能调优的过程—数据库设计。 在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效率的代码,为整个系统的性能打下良好的基础。 以下是性能要求设计阶段需要注意的: 1、数据库逻辑设计的规范化 数据库逻辑设计的规范化就是我们一般所说的范式,我们可以这样来简单理解范式:第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三范式,系统会产生较少的列和较多的表,因而减少了数据冗余,也利于性能的提高。 2、合理的冗余 完全按照规范化设计的系统几乎是不可能的,除非系统特别的小,在规范化设计后,有计划地加入冗余是必要的。 冗余可以是冗余数据库、冗余表或者冗余字段,不同粒度的冗余可以起到不同的作用。 冗余可以是为了编程方便而增加,也可以是为了性能的提高而增加。从性能角度来说,冗余数据库可以分散数据库压力,冗余表可以分散数据量大的表的并发压力,也可以加快特殊查询的速度,冗余字段可以有效减少数据库表的连接,提高效率。 3、主键的设计 主键是必要的,SQL SERVER的主键同时是一个唯一索引,而且在实际应用中,我们往往选择最小的键组合作为主键,所以主键往往适合作为表的聚集索引。聚集索引对查询的影响是比较大的,这个在下面索引的叙述。 在有多个键的表,主键的选择也比较重要,一般选择总的长度小的键,小的键的比较速度快,同时小的键可以使主键的B树结构的层次更少。 主键的选择还要注意组合主键的字段次序,对于组合主键来说,不同的字段次序的主键的性能差别可能会很大,一般应该选择重复率低、单独或者组合查询可能性大的字段放在前

优化数据库性能

查询速度慢如何解决 ------主要针对SQL 2005 为例 引起查询或更新的执行时间超过预期时间的原因有多种。查询运行慢,可能是由与运行 SQL Server 的网络或计算机相关的性能问题引起的,也可能是由物理数据库设计问题引起的。 查询和更新运行慢的最常见原因有: ?网络通讯速度慢。 ?服务器的内存不足,或者没有足够的内存供 SQL Server 使用。 ?索引列上缺少有用的统计信息。 ?索引列上的统计信息过期。 ?缺少有用的索引。 ?缺少有用的索引视图。 ?缺少有用的数据条带化。 ?缺少有用的分区。 1、用于对运行慢的查询进行故障排除的清单 当查询或更新花费的时间比预期时间长时,请考虑以下问题,找到可解答前一节中列出的查询运行慢的原因: ①. 是与组件而不是与查询相关的性能问题吗?例如,是网络性能低的问题吗?有其他可能引起或造成性能降低的组件吗? Windows 系统监视器可用于监视与 SQL Server 和非 SQL Server 相关的组件的性能。有关详细信息,请参阅监视资源使用情况(系统监视器)。 ②. 如果性能问题与查询相关,那么涉及到的是哪个或哪组查询? 首先使用 SQL Server Profiler来帮助找出运行慢的查询。有关详细信息,请参阅使用 SQL Server Profiler。 在找出运行慢的查询后,可以使用 SET 语句启用 SHOWPLAN、STATISTICS IO、STATISTICS TIME 和 STATISTICS PROFILE 选项,进一步分析查询的性能,相关描述如下: ?SET SHOWPLAN_XML ON 描述 SQL Server 查询优化器选择用来检索完善的 XML 文档数据的方法。有关详细信息,请参阅 SET SHOWPLAN_XML (Transact-SQL)。在 Microsoft SQL Server 2005 中,建议使用这种方法。此 SET 选项生成的信息比 SHOWPLAN_ALL 和 SHOWPLAN_TEXT SET 选项生成的信息详细。 ?SET SHOWPLAN_ALL ON 描述 SQL Server 查询优化器选择的数据检索方法。有关详细信息,请参阅 SET SHOWPLAN_ALL (Transact-SQL)。此 SET 选项生成的信息比 SHOWPLAN_TEXT SET 选项生成的信息详细。 ?SET SHOWPLAN_TEXT ON 返回每条 Transact-SQL 语句的执行信息,但不执行它们。有关详细信息,请参阅SET SHOWPLAN_TEXT (Transact-SQL)。

数据库优化

近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL 以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。 一、分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能有各种需求的量化的指标。 另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统)。 二、设计阶段 设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能调优的过程—数据库设计。 在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效率的代码,为整个系统的性能打下良好的基础。 以下是性能要求设计阶段需要注意的: 1、数据库逻辑设计的规范化 数据库逻辑设计的规范化就是我们一般所说的范式,我们可以这样来简单理解范式: 第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三范式,系统会产生较少的列和较多的表,因而减少了数据冗余,也利于性能的提高。

集团公司ERP应用案例分析

山东东阿阿胶集团公司E R P应用案例分析山东东阿阿胶集团信息中心主任沈渴望 东阿阿胶集团有限公司决策者决定实施ERP系统,是经过深思熟虑的,作为一家具有离散型特征的流程型企业,ERP实施注定不会一帆风顺! 东阿阿胶集团有限公司(以下简称东阿阿胶)拥有7个成员企业,3个分厂,其核心企业东阿阿胶股份有限公司是全国最大的阿胶生产企业,但随着竞争的激烈,这一位置正在面临严峻的挑战。由于近年来,以阿胶为原料的产品技术含量有限,进入壁垒低,大量的企业涌入这一行业。到目前为止,全国生产阿胶的厂商有几十个,大家都在使出浑身解数,提高市场份额。如何保持龙头地位?这是一直困扰东阿阿胶的问题。 东阿阿胶决策者决定实施ERP系统,是经过深思熟虑的。东阿阿胶主要产品涉及中成药、生物制剂、保健食品、医疗仪器等6个门类的产品40余种,企业既有流程型,又有离散型的特征,这种类型的企业实施ERP成功的几率很小,更何况东阿阿胶的信息系统的基础并不好。该公司从1987年开始实行计算机单机管理,到1989年,东阿阿胶的信息化工作已基本普及到质量、人事、财务、生产等环节,初步实现了计算机辅助企业管理,形成了初步的计算机信息系统。但由于受当时技术条件和管理水平的局限,各管理系统相对独立,开发环境和应用平台差异很大,信息代码没有统一的标准,应用水平也参差不齐,结果各子系统形成一个个信息“孤岛”,难以实现企业内部的信息共享,企业的信息资源无法得到合理利用。在这个基础上实施ERP,东阿阿胶免不了遇到挫折! 两度选型 早在1998年,东阿阿胶的主要领导者就青睐于ERP,并决定实施该系统。但在ERP 软件的选型上,东阿阿胶经历了不少的波折。由于对ERP了解的不够深入,企业在ERP 软件的选型上疏于调查和科学论证,结果草率实施,造成ERP项目实施不到2个月即宣告失败,这不仅浪费了东阿阿胶主要业务人员的时间和精力,更重要的是影响了管理和业务人员对以后实施ERP系统的信心。 在第二次的ERP软件选型时,东阿阿胶及时总结教训,由分管集团信息化建设的副总经理和集团信息中心主任为首,成立了专门的软件选型小组。该小组制订了三项原则:一是严格实行招标制度,邀请有关专家进行多家分析和比较;二是认真考察ERP生产厂商;三是确保软件选型避免流于形式,一定要脚踏实地,避免徇私舞弊情况的发生。

数据库优化查询计划的方法

数据库优化查询计划的方法 数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说,如果数据的量积累到一定的程度,比如一个银行的账户数据库表信息积累到上百万甚至上千万条记录,全表扫描一次往往需要数十分钟,甚至数小时。如果采用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟,由此可见查询优化技术的重要性。 在应用项目的实施中发现,许多程序员在利用一些前端数据库开发工具(如PowerBuilder、Delphi等)开发数据库应用程序时,只注重用户界面的华丽,并不重视查询语句的效率问题,导致所开发出来的应用系统效率低下,资源浪费严重。因此,如何设计高效合理的查询语句就显得非常重要。本文以应用实例为基础,结合数据库理论,介绍查询优化技术在现实系统中的运用。 分析问题 许多程序员认为查询优化是DBMS(数据库管理系统)的任务,与程序员所编写的SQL语句关系不大,这是错误的。

一个好的查询计划往往可以使程序性能提高数十倍。查询计划是用户所提交的SQL语句的集合,查询规划是经过优化 处理之后所产生的语句集合。DBMS处理查询计划的过程是这样的:在做完查询语句的词法、语法检查之后,将语句提交给DBMS的查询优化器,优化器做完代数优化和存取路径的优化之后,由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。在实际的数据库产品(如Oracle、Sybase等)的高版本中都是采用基于代价的优化方法,这种优化能根据从系统字典表所得到的信息来估计不同的查询规划的代价,然后选择一个较优的规划。虽然现在的数据库产品在查询优化方面已经做得越来越好,但由用户提交的SQL语句是系统优 化的基础,很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效,因此所写语句的优劣至关重要。下面重点说明改善查询计划的解决方案。 解决问题 下面以关系数据库系统Informix为例,介绍改善用户查询计划的方法。 1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如

SQLServer数据查询的优化方法

SQLServer数据查询的优化方法聂文燕 摘要:SQLServer是一种功能强大的数据库管理系统,许多数据库应用系统都是以它作为后台数据库。本文在分析影响SQLSERVER数据查询效率的因素的基础上,提出了几种优化数据查询的方法。 关键词:SQLServer,数据,查询,优化 一、引言 SQLServer是是由微软公司开发的基于Windows操作系统的关系型数据库管理系统,它是一个全面的、集成的、端到端的数据解决方案,为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。目前,许多中小型企业的数据库应用系统都是用SQLServer作为后台数据库管理系统设计开发的。设计一个应用系统并不难,但是要想使系统达到最优化的性能并不是一件容易的事。根据多年的实践,由于初期的数据库中表的记录数比较少,性能不会有太大问题,但数据积累到一定程度,达到数百万甚至上千万条,全面扫描一次往往需要数十分钟,甚至数小时。20%的代码用去了80%的时间,这是程序设计中的一个著名定律,在数据库应用程序中也同样如此。如果用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟。而且我们知道,目前数据库系统应用中,查询操作占了绝大多数,查询优化成为数据库性能优化最为重要的手段之一。 二、影响查询效率的因素 SQLServer处理查询计划的过程是这样的:在做完查询语句的词法、语法检查之后,将语句提交给SQLServer的查询优化器,查询优化器通过检查索引的存在性、有效性和基于列的统计数据来决定如何处理扫描、检索和连接,并生成若干执行计划,然后通过分析执行开销来评估每个执行计划,从中选出开销最小的执行计划,由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。所以,SQLServer中影响查询效率的因素主要有以下几种:1.没有索引或者没有用到索引。索引是数据库中重要的数据结构,使用索引的目的是避免全表扫描,减少磁盘I/O,以加快查询速度。 2.没有创建计算列导致查询不优化。 3.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)。 4.返回了不必要的行和列。 5.查询语句不好,没有优化。其中包括:查询条件中操作符使用是否得当;查询条件中的数据类型是否兼容;对多个表查询时,数据表的次序是否合理;多个选择条件查询时,选择条件的次序是否合理;是否合理安排联接选择运算等。 三、SQLServer数据查询优化方法 3.1建立合适的索引索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。当根据索引码的值搜索数据时,索引提供了对数据的快速访问。事实上,没有索引,数据库也能根据SELECT语句成功地检索到结果,但随着表变得越来越大,使用“适当”的索引的效果就越来越明显。索引的使用要恰到好处,其使用原则有: (1)对于基本表,不宜建立过多的索引; (2)对于那些查询频度高,实时性要求高的数据一定要建立索引,而对于其他的数据不考虑建立索引; (3)在经常进行连接,但是没有指定为外键的列上建立索引; (4)在频繁进行排序或分组(即进行groupby或orderby操作)的列上建立索引;

相关文档
相关文档 最新文档