全面接触SQL语法(转)
全面接触SQL语法(转)[@more@] SQL功能与特性 其实,在前面的文章中,已经提及SQL命令的一些基本功能,然而,通过SQL命令,程序设计师或数据库管理员(DBA)可以: (一)建立数据库的表格。(包括设置表格所可以使用之空间) (二)改变数据库系统环境设置。 (三)针对某个数据库或表格,授予用户存取权限。 (四)对数据库表格建立索引值。 (五)修改数据库表格结构。(新建、删除或是修改表格字段) (六)对数据库进行数据的新建。 (七)对数据库进行数据的删除。 (八)对数据库
一个过滤重复数据的sql语句(转)
一个过滤重复数据的sql语句(转)[@more@] 数据如下: 303 标准类别 TR_STANDARD_MANAGER 107 巡视记录类别 TR_PATROL_LOG 61 巡视记录类别 TR_PATROL_LOG 221 检修类型 TR_REPAIR_LOG 121 检修管理计划类别 TR_REPAIR_PLAN 141 检修管理计划类别 TR_REPAIR_PLAN 24 器材管理类别 TR_PATROL_PLAN_1 105 巡视计划类别 TR_PATROL_PLAN 108 检修管理计划类别 TR_REPAIR_PLAN 109 检修类型 TR_REPAIR_LOG 1 巡视计划类别 TR_PATROL_PLAN 2 巡视记录类别 TR_PATROL_LOG 2
SQL语言快速入门(转)
SQL语言快速入门(转)[@more@] SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Dele
多条件数据库查询的优化方法(转)
多条件数据库查询的优化方法(转)[@more@] 在数据库编程中,管理人员需要经常从数据库中查询数据。当查询条件为确定时,我们可以明确用的SQL语句来实现,但是当查询条件为多个条件的动态组合时,查询语句会由于分支太多及IF语句的多重嵌套而变得相当复杂。在此,笔者提供了一种优化方法,运用本方法可以有效地减少查询语句的分支和数量以及IF条件语句的嵌套层数,从而提高程序的运行效率。 下面我们以一个简单的例子来说明,假设有一个名为employee的表,现在我们要从其中查询数据,条件有三个,由用户动态选择,如图1所示:
用Oracle并行查询发挥多CPU的威力(转)
用Oracle并行查询发挥多CPU的威力(转)[@more@] 在一个单独的服务器中安装更多的CPU成为目前的一个趋势。使用对称多处理服务器(SMP)的情况下,一个Oracle服务器拥有8个、16个或32个CPU以及几吉比特RAM的SGA都不足为奇。 Oracle跟上了硬件发展的步伐,提供了很多面向多CPU的功能。从Oracle8i开始,Oracle在每个数据库函数中都实现了并行性,包括SQL访问(全表检索)、并行数据操作和并行恢复。对于Oracle专业版的挑战是为用户的数据库配置尽可能多的CPU。 在Oracle环境中实现并行性最好的方法之一是使用Oracle并行查询(OP
简单SQL语句小结(转)
简单SQL语句小结(转)[@more@] 为了大家更容易理解我举出的SQL语句,本文假定已经建立了一个学生成绩管理数据库,全文均以学生成绩的管理为例来描述。 1.在查询结果中显示列名: a.用as关键字:select name as '姓名' from students order by age b.直接表示:select name '姓名' from students order by age 2.精确查找: a.用in限定范围:select * from students where native in ('湖南', '四川') b.between...and:select * from students where age between 20 and 30 c.“=”:select * from
Oracle SQL性能优化系列讲座之三(转)
Oracle SQL性能优化系列讲座之三(转)[@more@] 8. 使用DECODE函数来减少处理时间 使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如: SELECT COUNT(*),SUM(SAL) FROM EMPWHERE DEPT_NO = 0020AND ENAME LIKE ‘SMITH%';SELECT COUNT(*),SUM(SAL)FROM EMPWHERE DEPT_NO = 0030AND ENAME LIKE ‘SMITH%'; 你可以用DECODE函数高效地得到相同结果 SELECT COUNT(DECODE(DEPT_NO,0020,'X',NULL)) D0020_COUNT,COUNT(DECODE(DEPT_NO,0030,'X',NULL)) D0030_COUNT,SUM(DECODE(DEPT_NO,0020,SA
Oracle SQL性能优化系列讲座之二(转)
Oracle SQL性能优化系列讲座之二(转)[@more@] 4. 选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中合适记录进行
Oracle SQL性能优化系列讲座之一(转)
Oracle SQL性能优化系列讲座之一(转)[@more@] 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性. 如果数据库的优化器模式
Oracle专家调优秘密(转)
Oracle专家调优秘密(转)[@more@] 前言 在过去的十年中,Oracle已经成为世界上最专业的数据库之一。对于IT专家来说,就是要确保利用Oracle的强大特性来提高他们公司的生产力。最有效的方法之一是通过Oracle调优。它有大量的调整参数和技术来改进你的Oracle数据库的性能。 Oracle调优是一个复杂的主题。关于调优可以写整整一本书,不过,为了改善Oracle数据库的性能,有一些基本的概念是每个Oracle DBA都应该遵从的。 在这篇简介中,我们将简要地介绍以下的Oracle主题: --外部调整:我们应该记住Oracle并不是单独
Oracle数据库及应用程序优化(转)
Oracle数据库及应用程序优化(转)[@more@] 摘 要:本文对ORACLE数据库及ORACLE应用程序的优化,进行了全面的分析与研究,并提出了自己的一些建议。 关 键 词:ORACLE,优化,数据库,SQL 1.引言 随着信息化时代的到来,人们开始广泛地使用数据库技术对大量而复杂的信息进行科学高效的管理。在数据库领域中的各种应用软件大量涌现,有Visual Foxpro,Power Builder等等,但其中ORACLE是这个领域中最优秀也是最流行的大型数据库应用软件。本文就在ORACAL中如何优化数据库及其应用程序进行了研究。 2.优化数据库
Oracle数据库性能优化技术(转)
Oracle数据库性能优化技术(转)[@more@] 摘要: Oracle数据库是当前应用最广泛的大型数据库之一,而其性优化直接关系到系统的运行效率。本文以数据库性能优化的基本原则为出发点,阐述了在数据库设计阶段如何避免竞争和如何优化数据访问,在数据库运行阶段如何从操作系统和数据库实例级别上调整内存和I/O来达到数据库性能优化的各种技术。 关键词:Oracle数据库;性能优化;内存;I/O 1. 引言 随着网络应用和电子商务的不断发展,各个站点的访问量越来越大,数据库规模也随之不断的扩大,数据库系统的性能问题就越来越
基于Oracle的高性能动态SQL程序开发(转)
基于Oracle的高性能动态SQL程序开发(转)[@more@] 摘要:对动态SQL的程序开发进行了总结,并结合笔者实际开发经验给出若干开发技巧。 关键词:动态SQL,PL/SQL,高性能 1. 静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一
优化Oracle库表设计的若干方法(转)
优化Oracle库表设计的若干方法(转)[@more@] 前言 绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer、Share Pool、Redo Log Buffer等内存模块配置不合理,I/O争用,CPU争用等DBA职责范围上。所以除非是面对一个业已完成不可变更的系统,否则我们不应过多地将关注点投向内存、I/O、CPU等性能调整项目上,而应关注数据库表本身的设计是否合理,库表设计的合理性才是程序性能的真正执牛耳者。 合理的数据库设计需要考虑以下的方面: ·业务数据以何种方式表达。如一个
教你用Linux完成Oracle自动物理备份(转)
教你用Linux完成Oracle自动物理备份(转)[@more@] 本文的目标是通过执行一Shell脚本来完成Oracle数据库自动备份的全过程,而且能够在当前目录下生成其压缩文件。具体实现步骤如下: 1.以Oracle用户身份登录到Linux系统下。 2.建立database.srcipt文件,以便生成备份数据库的一些参数信息并保存在文件database.parm中。 这些信息对于以后恢复数据库具有重要的参考作用,所以在物理备份的过程中,需要保存这些信息,也可以把其他一些重要的信息写在这个脚本里。 $vi database.srcipt s
优化Oracle停机时间及数据库恢复(转)
优化Oracle停机时间及数据库恢复(转)[@more@] 这里会讨论令Oracle停机时间最小化的步骤。各种形式的停机--计划的或者是非计划的--总是不断地发生,一个DBA应该有正确的备份策略,这样在数据库出现问题时就可以更快地恢复。 以下是假定的备份策略和数据库的运作条件 控制文件是镜像的 数据库运行在archivelog模式 每个星期都进行冷备份 每日都进行热备份 每日都进行一次全数据库导出 事件1:完整的数据库重构 在这种情形下,你可以使用全数据库导出或者冷热备份结合的方式来重构数据库。要注
Oracle数据库系统紧急故障处理方法(转)
Oracle数据库系统紧急故障处理方法(转)[@more@] Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。 控制文件损坏: 控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库
在不同字符集的数据库之间导入数据的方法(转)
在不同字符集的数据库之间导入数据的方法(转)[@more@] 以US7ASCII的库中导出的数据导入到字符集为ZHS16GBK的库为例子: 假设US7ASCII的库是A机,字符集为ZHS16GBK的库为B机 1.确定你A机上的oracle用户的.profile文件中的NLS_LANG是US7ASCII,正常的导出所有数据。 2.然后传到B机上,bin模式,然后在B机上设定好oracle用户的设定环境变量NLS_LANG=AMERICAN_AMERICA.US7ASCII 以sys用户执行update props$ set values$='US7ASCII' where name='NLS_CHARACSET'; 3.正常的导入数据至ZHS16GBK的数据库中去,
数据库链接的备份脚本(转)
数据库链接的备份脚本(转)[@more@] This tip comes from Galina Petrenko, Sr. IT Specialist, TPAS Systems Development, at Towers Perrin, in Voorhees, NJ. Description: This script produces readable output (backup) for database links in the database. It can be used in the restore/recovery process. Note that passwords for database links are also spooled in a readable format. col NAME new_value DB_NAMEselect name from sys.v_$database;set lines 80col TEXT for a70spool &DB_NAME..DB_LINK
Oracle自动备份数据(转)
Oracle自动备份数据(转)[@more@] 相信为数不少的系统管理员每天都在做着同一样的工作——对数据进行备份。一旦哪一天疏忽了,而这一天系统又恰恰发生了故障,需要进行数据恢复,那么此时就无能为力了。假如每天设定一个固定的时间,系统自动进行备份,那该多好啊!下面笔者结合实践经验,谈一谈UNIX环境下Oracle数据库的自动备份,以起到抛砖引玉的作用。 我们计划让数据库在晚上23点做export导出备份,在凌晨2点将备份文件拷贝到磁带上,在凌晨4点将备份文件拷贝到另一台UNIX机器上,为此我们可进行如下操作: 一、导出数