Oracle数据库学习中的六条经验总结

时间:2024.4.21

Oracle数据库学习中的六条经验总结

以下的文章主要是介绍在Oracle数据库学习中的六条经验总结,其实想学好Oracle数据库并不是一件很困难的事情,很多人都认为Oracle数据库的体系过于庞大,在学习的过程中摸不到头绪,以下的文章就会给你提供相关的解答方法。

1、如果有一定的数据库基础知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。

2、要想学好Oracle数据库,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:instance&database, memory structure,process&those files,such as data file, control file,init parameter file etc以及database ,tablespace,data file和tablespace,segmnet,extent & block它们之间的关系。

当然还要分清undo tablespace & redo log file等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。

3、是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。

4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。

5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习ORACLE数据库的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。

6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会。技术进步的本身就是经验的积累和提炼过程,希望大家共同成长,欢迎大家相互交流。


第二篇:Oracle实例操作经验总结-数据库规划-2


数据库规划文档

1、 数据库表空间规划

根据应用情况建立应用数据表空间,索引表空间,临时表空间,回滚表空间。

表空间存储参数划分:

initial = next , pctincreas 0 ,minextents 2 ,maxtents unlimited 如果是小表,则对应initail 以k为单位。

如果数据量比较大的表,例如历史表等 initial 以M为单位。

数据表空间的划分:

数据表空间可划分为多个数据表空间,按数据量、业务类型进行划分。 系统小表:bsys_area,bsys_code等 使用缺省表空间

历史表:CARD_BILLING_DETAIL_20xx03、BILLING_COMDETAIL_20xx03等使用历史表空间

其它表:如当前详单表、消费、粗帐表、用户信息表、认证表等归属一个数据表空间

特殊表:mid_record ,卡替重表等归属一个表空间

接口表、宽带表等:以业务类型划分数据表空间,接口表空间、宽带表空间

2、 Oracle性能考虑

Insert操作考虑 :插入操作运行速度慢,会伴随大量的输入输出。

如果高性能比空间的重新使用更为重要,那么可以使用一个能够绕过空闲列表的ORACLE8 SQL提示。即通过在INSERT关键词之后放置/*+ append */, 这个提示将确保所有插入内容都放入到空数据块中,从而提高了速度。

Pctfree: 为insert保留的可用块空间的百分比,当到达pctfree限额时,块被认为已满,不能再插入新的行。块中pctfree限额到达以后,保留在块中的空间为已存在于块中的行UPDATE服务。

数据库缺省值:PCTUSED = 40 PCTFREE = 10

大量的insert操作设置:如果表多数情况下是INSERT操作,可将pctfree 设置趋向于小(缺省值10),pctused要加大,建议(60至70)。

大量Update操作设置:如果表有大量的UPDATA操作,可将PCTFREE设置大一些(20--25), pctused建议(50)。

总体上PCTFREE+PCTUSED< 80 – 90

Freelists参数设置:

freelists为向表中进行insert操作,而保留的空闲块队列的数目,此参数可设为当前update操作的最大数值。对有很多并发UPDATE操作的数据表,定义额外的空闲列表。

例如表test有20个并发执行insert操作的终端用户,那么test表应该设置freelists = 20

3、 数据文件划分原则:

数据库文件的基本划分原则是:DATA空间段与其索引INDEXS空间段分开;RBS空间段与DATA空间段分开;SYSTEM空间段应同数据库中的所有其它空间段分开。

磁盘 数据文件内容

1 系统表空间,控制文件1、在线重做日志1

2 数据文件1

3 数据文件2

4 数据文件3

5 索引段

6 工具段,回滚段,控制文件2、在线重做日志2

7 临时段,用户段,在线重做日志3,控制文件3

4、 SQL语句设计

为了保证Oracle数据库运行在最佳的性能状态下,在业务系统开发之前就应该考虑数据库的优化策略。Sql语句与其执行计划一同进行检查。避免无计划的全表扫描, 如下情况进行全表扫描:该表无索引、对返回的行无Where子句、对于索引主列(索引的第一列)无限制条件等等。

对SQL语句的编写可参考如下原则:

改变SQL来源

在实际的编程过程中,建议从应用程序中去掉所有的SQL语句。强调通过将所有的SQL放置在存储过程中,将存储过程打包来实现。

在SQL语句中避免使用直接量

包含有直接量的SQL语句都不可能被再次使用。解决的办法是建议开发者在SQL语句中使用主机变量。

去掉不必要的大型表的全表扫描

全表扫描会造成不必要的硬盘I/0,调整方法是通过添加索引,使用标准的B树索引,使用位图索引或基于函数的索引,去掉不必要的全表扫描。Oracle8提供了含有内置函数的索引。 下面是一些经常使用的OracleSQL内置函数:

to_char

upper

lower

substr

decode

如果没有创建与内置函数匹配的基于函数的索引,这些函数通常会导致SQL优化器执行全表扫描。

缓存小型表的全表扫描

在全表扫描是更快的访问方式的情况下,将小表KEEP到数据缓冲区中。 alter table 表名 storage(buffer_pool keep);

并行技术

对于合法的大型表全表扫描可使用ALTER TABLE PARALLEL DEGREE nn命令进行并行化。

采用基于规则的优化器的一些特性: (optimizer_mode=rule)

总是使用索引

总是从驱动表开始,在from子句中的最后一个表是驱动表。表的名称从右向左读取,因此FROM子句中的最后一个表必须是可以返回最少记录的表。 使用Union All 而不是Union

UNION ALL操作不包括Sort Unique操作, 多数情况下不用临时段完成操作,

绑定变量(Bind Variable)的使用管理

将like :name ||’%’ 改写成 between :name and :name || char(225), 以避免进行全表扫描,而是使用索引。

存储过程keep在内存中

尽量利用oracle公司提你的dbms_shared_pool程序包将系统经常使用且占内存较多的存储过程keep在内存中,有利于提高最终用户的响应时间

execute sys.dbms_shared_pool.keep('cinms35.procedure_name','p'); not exists代替not in

在程序开发过程中编写sql时,用not exists代替not in,可以大大减少sql的执行时间

nologging 操作

对于create,insert、update、delete等操作可使用nologging

null值不适合建索引

不要对含有null值的单列或多列建立索引,这样的索引对sql的执行没有好处,反而会降低性能。

更多相关推荐:
Oracle数据库学习总结

Oracle数据库学习总结1setlinesizexx设置行间距常用数值有1002003002setpagesizexx设置每页显示行数3edx表示新建一个xsql文件通过文件编辑SQL语句然后用x命令可以调用...

oracle数据库学习总结(一)

oracle数据库学习总结基础一ORACLE中字段的数据类型1字符型1char范围最大20xx个字节定长char1039张三39后添空格6个把10个字节补满39张三39性别char239男392varchar2...

有关Oracle学习总结

表xyzabc1mhj1mhjk1njk2uwe2uwert3qs4ads4adsaa怎么删掉第158条记录字段ab相同的几条记录只留一条留下字段C较短的一条DELETEFROMLIANXIWHERELENGT...

oracle数据库个人小结

OracleSQL4GL第四代语言struncturedquerylanguage结构化的查询语言将数据放入Database数据库数据库对象tableSQLDDLdatadefinitionlanguage数据...

Oracle数据库知识总结

Oracle笔记1在安装Oracle过程中Oracle将会创建3个默认的用户sys数据库管理员具有最高权限相当于sqlserver20xx中的sa用户system数据库操作员具有较高权限scott数据库演示员用...

大学oracle数据库总结(考试必备)

1下列选项中关于序列的描述哪一项不正确任何时1完成以下PLSQL块功能是使用游标显示销售报表假设当前用户为SYSTEM创建用户user口令为abc候都可以使用序列的伪列CURRVAL返回当前序列2oracle中...

Oracle数据库总结

一Oracle数据库中常用的数据类型varchar2长度可变长字符串char长度定长number表示整数或者浮点数number8number82clog字符的大对象blog二进制的大对象二数据库查询1SELEC...

Oracle数据库初级常用操作总结【华为内部学习资料】

查询语句基本数据查询select内容from表名selectdistinctjobfromemp去除重复行限定查询查询满足条件的行SELECT列名FROM表名WHERE条件SELECTempnoenamecom...

Oracle APEX 学习心得

APEX简介这一部分主要使读者熟悉APEX的基本概念环境和使用本部分介绍了APEX主要特性三个组件应用程序构建器SQL工作室实用工具和四类用户本部分回答了以下问题什么是APEX用APEX可以做什么何时使用APE...

Oracle数据库课程设计——学生考勤系统的Oracle实现

烟台大学Oracle数据库课程设计报告改进版学生考勤系统姓名:XX指导教师:XX老师烟台大学计算机学院Oracle数据库课程设计学生考勤系统的Oracle实现1学生考勤管理系统背景分析随着高校校园信息化的逐步完…

Java__oracle数据库课程设计学生成绩管理系统

数据库程序设计课程设计报告课题学生成绩管理系统姓名学号同组姓名专业班级软工09012指导教师设计时间20xx年6月目录1开发背景32系统描述33数据分析431数据流图432数据字典44概念模型设计941ER图9...

[转]Oracle10g数据库优化实用心得小结

转Oracle10g数据库优化实用心得小结很多的时侯做OracleDBA的我们当应用管理员向我们通告现在应用很慢数据库很慢的时侯我们到数据库时做几个示例的Select也发现同样的问题时有些时侯我们会无从下手因为...

oracle数据库学习总结(27篇)