当前位置:首页 >> 滚丝轮

ORACLEl0g数据库技术查询性能浅谈铸铁闸门

2022-07-28 20:12:58  伟业五金网

ORACLE l0g数据库技术查询性能浅谈

ORACLE l0g数据库技术查询性能浅谈 2012年07月26日 数据库中会存储各类信息(学校记录、移动电话记录、下载的铃音、采购的商品)。我们每天都在自觉或不自觉地与数据打交道。了解数据库中存储了哪些内容以及可以从数据库中检索到什么,是非常重要的。 Oracle是“神谕”的意思。在我国也简称为甲骨文,是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。Oracle数据库环境,己经成为世界上最流行的数据库平台之一,并且有进一步扩大的趋势。我们可以使用这个平台,为大型企业服务,同时广大的中小型企业同样需要。Oracle数据库有一个很重要的功能,就是数据查询。1 0RACLE l0 g数据库技术的查询原理1.1数据库的查询活动 通过分析SQL语句中的Select语句,来看数据库进行的查询活动。 首先,要在Client书写SOL语句并执行时,Client就把这条sOL语句发送给Server,Server的进程就会来处理这条Select语句。 其次,当SQL语句被传送到Server后,Server进程就会对传送过来的语句进行分析。 同理,这个分析的工作,也是在Server方进行的。虽然从表而上看仅仅是简单的分析动作,其实不然,在这里还包含有许多的内容。1.2分析工作包含的内容 (1)当Server进程接收到Client传送过来的SQL语句时,会先在数据库的高速缓存中查找,查看有没有存在相同语句的执行计划。假如在数据高速缓存中,恰好有别人在使用这个查询语句的话,那Server进程就会直接执行这个SQL语句,而省去从硬盘中读取数据的时间,这样就大大提高丫sOL语句的查询效率。 (2)如果Server进程在高速缓存中找不到与之相对应的SQL语句时,便会检查这条语句的合法性。这里主要是对SQL语句的语法进行检查,看看其是否合乎语法规则。如果Server进程认为这条SQL语句不符合语法规则的时候,就会把这个错误信息反馈给Client。在这个语法检查的过程中,Server进程只是进行语法上的检查,而不会对SQL语句里所包含的关键字等等进行修改。 (3)当Server进程检查语法后,若SQL语句符合语法上的定义话,则Server进程接下去就对书写语句中的字段、数据类型等内容进行检查。确认这些字段、数据类型是否在数据库中。因此如果表名与列名不贴切的话,数据库会就会反馈错误信息给Client。 (4)经过检查,SOL语句的语法、语义都正确后,为了保障数据的一致性,以防我们在查询的过程中,其他用户对查询对象的结构进行修改,系统就会锁定我们需要查询的对象。 (5)即便是语法、语义通过检查之后,Client还不一定能够取得数据。Server进程还会继续检查,确认所连接的用户是否有这个数据访问的权限。若连接上Server的用户不具有数据访问权限的话,Client就不能够获取这些数据。所以,数据库Server进程是先检查语法与语义,然后才会检查访问权限。 (6)经过上述一些列检查后,当我们确认语句与语法都没有问题,同时也有查询权限的话,Server进程还是不会直接对数据库文件进行查询。Server进程会根据一定的规则,对这条语句进行优化。需要注意的是,这个优化是有限的。2 0 RAC LE l 0 9数据库技术的查询语句及技巧 数据查询,是数据库操作中最主要的功能之一。有时候数据库查询性能的好坏,直接关系到数据库的运行效率,关系到数据库的选型。2.1简单查询语句 日常工作或生活中,用户需要经常从数据库中查询所需要的数据。例如通过查询一个企业的部门表DEPT,可以检索企业的所有部门信息,而通过查询职工表EMP,可以检索企业的所有雇员信息。在关系数据库中查询数据,是使用SELECT语句来完成的。其简易语法如下: SELECT牝一 {[DI STINCT]colulTin—expression[alias],…}FROM table"|; 大写的为关键字;小写的为指定的名称;SELECT子句指定所关心的列;FROM子句指定所要查询的表。 实验l:查询所有列:如上所示执行查询所有列的操作,在SELECT语句后跟上(术)。下而以检索所有部门为例说明查询所有列的法。语法格式为:SQL>SELECT术FROM scott.dept; 实验2:查询指定列:如果要查询多个列,那么列名之间用逗号隔开,列的顺序由我们来指定。下而以检索雇员名、岗位工资为例,说明查询特定列的方法。 这里我们指定表中的两个列,其它的列我们不看。语法格式为:SQt>SELECT ename,sal FROM scott.emp; 实验3:查询表的某些列,在列上使用表达式:语法格式为:SQL>SELECT ename,1 2"(sal+300)FROMscott.emp; 从上而语句中可以看出,表达式的运算是有优先级的,和程序中的一样,先乘除后加减,括号强制优先级。最后我们查询出每个雇员月奖是300无的全年总工资来。 实验4:在列上起一个别名:语法格式为:SQL>SELECT ename,12*(sal+300)as¨全年总工资¨FROMscott.emp; 这样显示的结果比较直观,用户操作起来也很方便。 1、高级SOL连接查询 实验5:查询EMP表和DEPT表,显示部门号为30的部门名称以及该部门的雇员 语法格式为:SQL>SELECT ename,dname FROMscott.emp,scott.dept WHERE emp.depmo=dept.deptnoAND emp.depmo=3 0; WHERE子句要始终放在FROM子句的后而。我们都知道,数据库查询效率高不高,是我们评价数据库设计好坏的一个重要标准。毋庸置疑,在数据库查询中勤用WHERE条件语句,是提高数据库查询性能的一个很重要的手段之一。特别是在设计到比较大的表中查询符合条件的记录过程中,利用WHERE条件语句加以限制,可以大幅度的提高查询的响应速度。我们只需要在查询中加入一些查询的参数,利用WHERED]条件语句加以限制,则可以提高数据库响应的速度,还能够以最快的速度找出最符合要求的数据。 实验6:查询某图书管理表中作者为姓“赵”的所有图书信息。 语法格式为: SQL>SELECT术FROM HR.book WHERE nameLIKE’赵%’; LIKE关键字作为通配符,我们可以实现很多模糊查询。但是,当用户在一张大表中采用这个LIKE语句的话,就会发现这个查询语句的运行效率非常的慢。这是由于在利用这些关键字查询的时候,数据库系统不是通过索引来查询,而是采用顺序扫描的方式来查询。显然,这就造成丫LIKE关键字查询效率的低下。特别是在复杂查询或者大表查询中,用户可以明显感觉到速度比较慢。所以,在数据库系统设计中,要慎用LIKE关键字。 2、嵌套SQL子查询 嵌套查询就是在外部还有一个查询。子查询是在select内部还有一个select查询常常也被称为内查询。嵌套查询内层子查询通常作为搜索条件的一部分呈现在WHERE或HAVING子句中。 实验7::显示部(SALES)雇员的总人数 语法格式为:SQL>SELECT count(empno)fromscott.emp WHERE deptno=(select deptno from scott.deptwhere dname=’SALE S'); 在查询处理的时候,COUNT函数可以说是我们应用的比较多的函数之一。如我们有时候需要统计员工的人数、统计图书的种类数的时候,都需要使用到这个函数。不过,这个函数很多人可能会用,但是到灵活应用的地步,还是有一点差距。3 结束语目前通用的数据库产品有很多种,其中Oracle数据库以其支持大数据库、多用户的高性能事务处理领先。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大:查阅新闻、查看文件、查询统计信息等。因此,数据库查询操作是一个应用数据库的基本功能。

女性肝肾阴虚心烦易怒吃什么药

肾虚的食疗方法有哪些

女性肝肾阴虚潮热多汗怎么治

赤鹿他达拉非的成分有哪些

潮热多汗是肾虚吗

相关资讯
友情链接