已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle 10g管理工具的使用DBA可以使用的管理工具OUI (Oracle Universal Installer)启动方式: 所有程序Oracle-OraDb10g_home1Oracle Installation ProductsUniversal Installer功能:OUI是基于Java技术的图形界面安装工具,可以利用它完成不同操作系统、不同类型的、不同版本的Oracle软件安装及查看已经安装的产品。DBCA启动方式: 所有程序Oracle-OraDb10g_home1Configuration and Migration ToolsDatabase Configuration Assisant 也可以在命令提示符下:输入dbca功能: 创建数据库 配置现有数据库中的数据库选项 删除数据库 管理数据库模板OEM登陆方法OEM是基于java技术,并且是以B/S模式运作的一个很重要的Oracle数据库的管理工具。OEM登陆方法: 在浏览器地址栏中输入: http:/主机名:1158/em , 回车即可出现登陆界面.在$ORACLE_HOMEinstallportlist.ini中找到需要的端口号 OEM登陆界面超级用户登陆OEM的方法1 . 用sys 用户登陆,必须是sysdba或sysoper身份。 2 . 用system用户登录,必须是normal身份。将OEM管理权限授予其他用户如果想通过其他用户来管理OEM, 设置方式: OEM 界面的右上角 “设置” , 点开在设置页面上,可以看到OEM的管理员,如图:OEM的使用利用OEM可以执行一些管理任务。关闭和启动数据库创建、删除、修改各种对象查看数据库例程(分配的内存及后台进程)的性能及状态信息。管理用户备份和恢复数据库导入和导出数据EMSQL*Plus何为SQL*Plus?SQL*Plus的启动和退出SQL*Plus的连接和断开SQL*Plus的输入、编辑、运行命令自定义SQL*Plus的环境格式化查询结果SQL*Plus是Oracle公司独立的SQL语言工具产品,Plus表示Oracle公司在标准SQL基础上进行了扩充。它是Oracle系列产品中的一个非常重要的、在服务器端和客户端都可以使用的工具。它提供了一个图形化的界面。iSQL*Plus是SQL*Plus的基于Web浏览器的接口。SQL*PLUS的启动启动方式1: 开始- 程序 - Oracle-Oradb10g_home1 Application DevelopmentSQL Plus启动方式2: 在命令提示符下 1. sqlplus /nolog - - nolog表示nologin 如:conn sys/o123 as sysdba; 2. sqlplusw /nolog - - w代表以窗口来启动 如:conn sys/o123 as sysdba;SQL*Plus的退出在SQL 提示符下,输入命令:exit ,回车即可。 如: SQL exit ;File ExitSQL*Plus的连接和断开如果在SQL*Plus的环境下,要更换用户,可以不退出SQL*Plus的情况下,先断开当前用户,然后再连接其他用户。连接: 1. SQL conn sys/o123 as sysdba; 2. SQL conn Enter user-name: system Enter password: Connected.断开: SQL discSQL*Plus的输入、编辑、运行命令输入命令:告诉SQL*Plus干什么。可以输入的命令有三种类型:SQL命令: 标准SQL命令,用于操作数据库中的信息。PL*SQL块: 用于操作数据库中的信息。SQL*Plus命令: 编辑、保存、运行、格式化查询结果,及定义SQL*Plus的环境等。 如:conn ,disc ,exit , set ,save ,edit等。SQL*Plus 编辑命令及功能SQL*Plus 的文件操作命令及功能SQL*Plus的运行命令在一个完整的SQL语句之后,输入; 或 / ,然后回车即可。在缓冲区中的SQL语句,直接输入Run 或 /, 运行。运行脚本: SQL start c:1.sql; 回车 SQL c:1.sql; 回车关于脚本文件创建保存: SQL save c:2.sql;获取: SQL get c:2.sql;运行: SQL start c:1.sql; SQL c:1.sql; 编辑: 自定义SQL*Plus环境Show命令:显示环境变量 Show all :显示当前环境中所有的环境设置参数。 Show 某一参数:显示当前环境中该参数的设置值。Set命令:设置环境变量 如:SQL set linesize 200也可以在图形化界面上进行设置。 Options菜单Environment 在如下弹出窗口中设置:如果希望每次启动SQL*Plus时都会自动使用特定的环境变量的设置,则可以修改DB_1sqlplusadmin目录下的glogin.sql脚本文件。当然 ,要先对glogin.sql进行编辑。iSql*Plusisql*Plus是SQL*Plus的基于Web的接口,是SQL*Plus产品的一个组件。启动isql*Plus的方法: 1. 在OEM中启动 2. 在浏览器中启动在浏览器中启动 在用户名中输入数据用户,口令中输入密码,连接字符串默认okOFA (Optimal Flexible Architecture)又称Oracle 10g最佳灵活体系结构。是指一组较好的Oracle软件和数据文件及目录的命名约定和存储位置规则,使用户可以很容易地找到与Oracle数据库相关的文件集合。使管理更直观方便。Oracle的数据字典数据字典组成 数据字典表 数据字典视图数据字典视图 (静态)动态性能视图 在OEM中查询数据字典数据字典数据字典表数据字典表主要保存以下信息:各种方案对象的定义信息,如表、视图、索引、同义词、序列、存储过程、函数、包、触发器和各种对象;存储空间的分配信息;安全信息(帐户、权限、角色等)例程运行时的性能和统计信息其他数据库本身的基本信息数据字典的用途Oracle通过查询数据字典表或数据字典视图来获取有关用户、方案对象、对象的定义信息;每次执行DDL语句修改方案对象和对象后,Oracle都在数据字典中记录下所做的修改;用户可以从数据字典的只读视图中,获取各种与对象方案和对象有关的信息;DBA可以从数据字典的动态性能视图中,监视例程的运行状态,为性能调整提供依据.数据字典的组成数据字典中的信息存储在表和视图中。数据字典的组成: 数据字典表:保存了加密的服务器系统信息。 数据字典视图:把数据字典表中的信息经过解密和其他的加工处理后形成的。主要是将各种信息分权限、分类存放,便于用户使用。只有Oracle才负责对数据字典表进行管理和维护,任何用户不能修改它。数据字典表数据字典视图数据字典表中的信息经过解密和一些加工处理后,以视图的方式呈现给用户。主要是将各种信息分权限、分类存放,便于用户使用。大多数用户都可以通过数据字典视图查询所需要的与数据库相关的系统信息。数据字典视图数据字典的使用数据字典视图根据名字前缀分为三类: USER_ 用户视图 自己拥有的对象 ALL_ 扩展用户视图 自己拥有 + 被授权的 DBA_ 数据库管理员视图 全部对象在例程的运行过程中,Oracle会在数据字典中维护一系列虚拟的表,在其中记录与数据库活动相关的性能统计信息,这些表被称为动态性能表。这些虚拟的表不是固定的表,它们在例程启动时被创建,并向其中添加信息,而当例程消亡时,这些表也就删除了。信息主要来源于SGA和控制文件。动态性能视图属于SYS用户。Oracle自动在动态性能表上创建了一些视图,即动态性能视图。所有动态性能视图都以v_$开头。Oracle为这些视图创建了公用同义词v$,因此动态性能视图也被称为v$视图。Oracle体系结构Oracle服务器的工作原理处理过程可以简单的描述为:用户在其机器上运行基于Oracle的应用程序(如:SQL*PLUS、PL/SQL Developer等),即启动用户进程.客户机、服务器之间建立连接(Connect).服务器为用户建立会话(Session),并为该会话建立一个PGA(Program Global Area,程序全局区)以存储与该会话相关的信息.在同一个连接中,不同的用户有不同的会话.启动服务进程,由该服务进程负责执行该会话的各项任务.用户进程发送SQL语句(select、update、commit.)服务器进程解析、编译、执行SQL语句,然后将结果写入数据库并返回结果给用户进程。用户进程接收返回的SQL执行结果。在应用程序中显示SQL执行结果.体系结构及其组件综述图示内容如下:Oracle的体系结构可分客户端、服务器两大部分。客户端:在客户机上安装管理工具后,运行工具启动用户进程。服务器:包括例程和数据库两部分。 例程:包括SGA及后台进程。 数据库:包括控制文件、数据文件、日志文件等操作系统文件.Oracle 服务器Oracle 数据库服务器:主要由两部分组成: 物理数据库和数据库管理系统。物理数据库是保存数据的物理存储设备。数据库管理系统是用户与物理数据库之间的一个中间是软件层,又称例程。有一定的结构。或称数据库服务器由例程和数据库组成 如果把Oracle数据库比作一部汽车,instance相当于汽车的发动机一样,启动oracle数据库前提应先启动instance.当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连接、使用数据库。所以例程是用户和数据库之间的中间层。例程与数据库的区别:数据库指的是存储数据的物理结构,总是实际存在的;例程则是由内存结构和一系列进程组成,可以启动和关闭。SID(系统标识符)一台计算机上可以创建多个Oracle数据库,一个数据库上可以有多个例程。为了使例程间不混淆,每个例程都称为:SID(SystemIDentify)加以区分。例 程的组成连接到例程建立连接和会话 :建立用户连接建立会话数据库Oracle数据库物理存储结构 物理存储结构是现实的数据存储单元,对应于操作系统文件。Oracle数据库就是由驻留在服务器的磁盘上的这些操作系统文件所组成的。这些文件有数据文件、日志文件、控制文件。物理存储结构物理结构主要包括以下三种文件:控制文件数据文件重做日志数据文件(Data File)数据文件(Data File)是物理存储Oracle数据库数据的文件。其特点如下: 每一个数据文件只与一个数据库相联系。 一个表空间可包含一个或多个数据文件。 一个数据文件只能属于一个表空间。重做日志文件(Redo File) 重做日志文件(Redo Log File)记录所有对数据库数据的修改,以备恢复数据时使用。其特点如下: 每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。 每一个日志文件成员对应一个物理文件。控制文件 控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。参数文件 参数文件(Parameter File)也被称为初始化参数文件,用于存储SGA、可选的Oracle特性和后台进程的配置参数。 当数据库启动,并在创建例程或读取控制文件之前,会先按其中的参数进行例程的配置。 位置:$Oracle_home dbs逻辑存储结构主要描述Oracle数据库的内部存储结构,从技术概念上描述Oracle数据库中如何组织、管理数据。可以分为4部分:表空间、段、区、块。表空间 表空间是数据库的逻辑划分的最大单元,一个Oracle数据库至少有一个表空间,即system表空间。安装完Oracle 10g后,自动创建的表空间为:Example 示例表空间,存放例子数据库的方案对象。SYSTEM 系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,它属于sys、system方案。不能删除或重命名。SYSAUX 辅助系统表空间 ,用于减少系统表空间的负荷,提高效率。是Oracle 10g新增加的表空间。TEMP 临时表空间,存放临时表和临时数据,用于排序。USERS 用户表空间,存放永久性用户对象及私有信息,也称数据表空间。注意:每一个数据库都应该有一个用户表空间,以便在创建用户时分配给用户,否则用户的数据将会使用SYSTEM表空间。UNDOTBS1 重做表,段 (Segment)段是表空间的下一个逻辑单位,是表空间中一个指定类型的逻辑存储结构,它由一个或多个区组成,段将占用并增长存储空间。分类如下 :区(extent) 区(Extent)是由物理上连续存放的块构成,区是Oracle存储分配的最小单位,由一个或多个块 组成。 当在数据库中创建带有实际存储结构的方案对象(如表、索引)时,Oracle将为该方案对象分配若干个区,以便组成一个对应的段来为该方案对象提供初始的存储空间。当段中已分配的区都写满后,Oracle就为该段分配一个新的区,以便容纳更多的数据。 分配的第一个区称初始区,以后分配的区称增量区。数据库块(Block)数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。 一个数据库块对应一个或多个物理操作系统块,块的大小由参数DB_BLOCK_SIZE确定。数据块的大小是操作系统块大小的整数倍. 以Win2K为例,操作系统块(OS block)的大小为4kb,所以Oracle Block的大小可以是4kb,8kb,16kb等等。存储结构总结内存结构Oracle内存结构由两个部分组成:系统全局区(SGA): 在启动例程时分配, 是Oracle例程的基础组件。程序全局区(PGA): 当启动服务器进程时分配。系统全局区(SGA)SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。 每个例程都只有一个SGA. 它是不同用户进程与服务进程进行通信的中心,数据库的各种操作主要在SGA中进行,所以称其为系统全局区. 创建例程时,Oracle为SGA分配内存; 终止例程时,释放SGA所占用的内存.系统全局区SGA由以下内存结构组成:共享池数据高速缓存重做日志缓冲区在SGA内可以配置以下内存结构:大缓冲池Java池共享池用于存储:最近执行的SQL语句最近使用的数据定义由两个关键的内存结构组成:库高速缓存数据字典高速缓存尺寸由参数SHARED_POOL_SIZE控制库高速缓存存储最近解析使用的SQL和PL/SQL语句信息 Oracle 在执行用户进程提交的各种SQL语句、PL/SQL前要对其进行解析(包括语法解析、对象确认、权限判断、操作优化等)并生成执行计划,占用一定的系统资源。由两个部分组成:共享SQL区共享PL/SQL区数据字典高速缓存最近使用的对象定义集合包括数据库文件、表、索引、列、用户、权限和其它数据库对象的信息在解析阶段, 服务器进程查看数据字典信息以解析对象名数据字典缓存信息到内存,以提高查询和DML响应时间尺寸由共享池尺寸确定数据高速缓存存储从数据文件检索的数据块副本通过LRU算法管理DB_BLOCK_SIZE确定了缓冲区数据块大小 初次访问数据时,Oracle将读取磁盘上的数据文件,将数据放入数据高速缓存,再处理数据; 如果数据已经位于数据高速缓存中时,Oracle直接操作数据。数据高速缓存的缓存块分为三类:脏缓存块: 存放已经被修改过的缓存块. 当SQL修改某个缓存块中的数据,则这个缓存块被标记为脏缓存块空闲缓存块: 等待写入数据的空闲缓存块.命中缓存块: 最近正在被访问的缓存块.管理缓存块的列表Oracle通过2个列表来管理上述缓存块: 脏列表(DIRTY) 包括被修改过但尚未写到数据文件的缓冲块。 LRU(Least Recently Used)列表 包括空闲缓冲块、命中缓存块,以及还没有移到脏列表的缓冲块。数据高速缓存工作原理重做日志缓冲区记录所有数据块变化。当执行DML, 如:update、delete、insert或者create、alter、drop 等语句时,Oracle都会为这些操作生成重做记录.主要目的是恢复Oracle总是先记录日志、后记录数据由LOG_BUFFER初始化参数定义重做日志高速缓存工作原理为提高效率,重做记录并不直接写入磁盘的重做日志文件,而是先写入重做日志缓存;当重做日志缓存中的重做记录达到一定数量时,由LGWR进程写入重做日志.(先内存后磁盘)当2个(至少2个)重做日志切换时,由ARCH将重做日志中的数据写入归档日志文件,以做备份.大池 大池用于需要大内存操作提供相对独立的内存空间,以便提高性能。 大池是可选的内存结构。 DBA可以决定是否需要在SGA中创建大池。 需要大池的操作: 数据库备份和恢复 大量排序的SQL语句 并行化的数据库操作Java池8i以后提供的对Java的支持,用于存放Java代码、Java程序等.一般不小于20M,以便虚拟机运行.尺寸由JAVA_POOL_SIZE控制程序全局区(PGA)为每个连接到数据库的用户进程预留内存当建立服务器进程时分配当终止服务器进程时释放只能由一个进程使用进程结构Oracle使用各种类型进程:用户进程: 当用户请求连接到Oracle server时启动服务进程: 连接到例程,并且当用户建立会话时启动后台进程: 当启动例程时启动用户进程请求与Oracle server交互的程序必须首先建立连接不会与Oracle server直接交互服务器进程直接与Oracle server交互的程序完成调用并返回结果可以是专用的或者共享的后台进程作用:维护并加强物理结构和内存结构的关系。必需后台进程:DBWnPMONCKPTLGWRSMON可选后台进程:ARCnLMDn QMNnCJQ0LMON RECODnnnLMS SnnnLCKnPnnnDBWnLGWRSMONPMONCKPTARCnOracle数据库包括DB和DBMS两部分两部分。这两部分分别对应着database和例程。Oracle数据库的database的存储结构: 物理存储结构、逻辑存储结构。Oracle数据库的例程部分: 内存结构、进程结构方案对象管理 管理索引16.1 索引的概念索引的作用索引的作用:为了加快查询的速度。如果一个表中包含有很多条记录,当对表执行查询时,必须将所有的记录一一取出,以便将每一条记录与查询条件进行比较,然后再返回满足条件的记录。这叫做全表扫描。这样进行操作的时间开销和I/O开销都是很巨大的,这时可以考虑通过索引来减小开销。如果在表中查询指定的记录,在没有索引的情况下,必须遍历整个表,而有了索引之后,只需要在索引中找到符合查询条件的索引字段值,就可以通过保存在索引中的ROWID(相当于书的页码)快速找到表中对应的记录。因此,为表建立索引,既能够减少查询操作的时间开销,又能够减少I/O操作的开销。 索引提高查询速度举例 Conn sys/o123 as sysdba;Grant dba to scott;Conn scott/tiger;Create table mytabAs select * from dba_objects where owner in (PUBLIC, SCOTT,SYS,SYSTEM);Select count(*) from mytab; - - - 43363行Set autotrace trace explain;Select owner,object_name from mytab where object_name=DBA_INDEXES;Create index idx on mytab(object_name);Select owner,object_name from mytab where object_name=DBA_INDEXES;索引存储方式索引与表一样,不仅需要在数据字典中保存索引的定义,还需要在表空间中为它分配实际的存储空间存储索引数据。当创建索引时,Oracle会自动在用户的默认表空间中或指定的表空间中创建一个索引段,为索引数据提供存储空间。与创建表的情况类似,在创建索引时,也可以为它设置存储参数。为某个表创建的索引不必和这个表保存在同一个表空间中。索引原理在创建索引时,Oracle首先对将要建立索引的字段进行排序,然后将排序后的字段值和该值对应记录的物理地址ROWID存储在索引段中。比如,假设使用下面的语句为emp表中的ename字段建立索引: CREATE INDEX EMP_ENAME ON EMP(ENAME); Oracle 首先在emp表中按照ename字段进行排序(默认为升序),然后按照排序后的顺序将ename字段值和对应的ROWID 逐个保存在索引中。 (P564 图16.2)在索引创建之后,如果执行的一条WHERE子句中引用了ENAME字段的查询,比如: SELECT * FROM EMP WHERE ENAME=SMITHOracle将首先对索引中ENANME字段进行一次快速搜索(因为索引中的ENMAE字段已经排序,所以这个搜索是很快的),找到符合条件的ENAME字段值所对应的ROWID,然后再利用ROWID到EMP表中提取相应的记录。这个操作比逐条读取EMP表中未排序的记录要快得多。 (P563 图16.1)可以看出,在索引中只保存索引字段的值与相应的ROWID,这种组合称为索引条目。索引的分类单列索引与复合索引唯一索引与非唯一索引标准索引(B树索引或二叉树索引)位图索引 函数索引单列索引与复合索引基于单个列所创建的索引,单列索引。基于两列或多列所创建的索引,即复合索引。唯一索引与非唯一索引索引列值不能重复、即唯一索引。索引列值可以重复、即非唯一索引。标准索引(B树索引)用B-树结构来组织索引的。根:包含指向分支节点的信息。分支节点:包含指向下一级分支部分和指向叶子节点的信息。叶子节点:包含索引列和指向表中每个匹配行的ROWID信息。 P566 图16.3位图索引对于取值范围只限于几个固定值的列,比如性别列(只能是男和女),婚姻状况列(只能是未婚、已婚和离异)。如果在其上建立B树标准索引,会返回大量记录,并不能明显提高查询速度。可以建立位图索引,是一种全新的索引机制。 基数:指某个列可能拥有的不重复数值的个数。对于基数很小的列,只是有限的几个固定值,如果要建立索引,就应该建立位图索引,而不是默认的建立B树索引。Oracle建议,当一个列的基数与表的总行数的比例小于1%,就应当建立位图索引。函数的索引如下查询:Set autotrace on explainselect empno,ename,job,sal from scott.emp where (sal+comm+sal*0.2)2000;Create Index funidx_salcomm on emp(sal+comm+sal*0.2) -创建索引select empno,ename,job,sal from scott.emp where (sal+comm+sal*0.2)2000;16.2 管理索引的策略虽然使用索引能有提高查询速度,但是如果为某个表创建了过多的索引,反而有可能会降低更新、插入、删除等操作的速度。因为Oracle在更新表中数据的同时,还需要更新索引中的数据。因此,用户在进行应用设计时,一定要认真考虑,决定:什么表上创建索引、创建什么索引、创建几个索引,以及如何创建索引等问题。一、选择合适的索引类型(是B树索引还是位图索引)列的基数特性:通常如果列的基数只达到表中记录数的1%或者列中的大部分值都重复出现100次以上,则对该列应当建立位图索引。而B树索引则适用于那些具有高基数的列。列的NULL值特性:位图索引中可以记录具有NULL值的列,而在 B 树索引中将忽略所有的NULL值列。因此如果某个列需要进行与NULL值相关的查询,则应当为它建立位图索引。是否需要节省存储空间:B树索引会占用大量的存储空间;而位图索引通常只占用很少的存储空间。查询条件的逻辑运算符特性:对于一些特殊类型的查询语句,位图索引能够比B树索引更有效地提高查询速度。比如,如果在查询的WHERE子句中包含AND、OR等逻辑运算符,使用位图索引可以极大地提高查询速度,因为逻辑运算直接可以在位图索引内部完成。查询条件的比较运算符特性:对于另外一些查询语句,B树索引能够比位图索引更有效地提高查询速度。比如那些经常会使用等比较运算符进行查询的列,应当使用B树索引而不是位图索引,这是由B树索引的搜索特性决定的。二、在适当的表、适当的列上创建适当数量的索引在选择应该为哪些表创建索引,可以参考以下建议:一般不需要为很小的表创建索引对于比较大的表来说,如果经常查询的记录数目少于表中所有记录数目的15%,可以考虑为该表建立索引。在选择应该为表中的哪些列建立索引,参考以下建议:应当为大部分字段值都不重复的字段建立索引。对于取值范围很大的字段应当创建普通索引(树索引;对于取值范围很小的字段应当创建位图索引。对于包含很多NULL值,经常需要查询所有NULL值记录的字段,应当建立索引。否则没必要建立索引。不能在LONG或BLOB等大对象数据类型的列上创建索引。oracle会自动为具有primary key和unique约束的字段创建索引,不会自动为foreign key字段创建索引。三、合理设置复合索引中的列顺序 复合索引中列的顺序会影响查询的速度,应该根据查询的频率,查询次数越多的字段放在越前面。四、设置合适的PCTREE参数 如果经常要对某个表执行插入操作,就应该为这个表的索引设设一个较高的PCTREE参数,以便预留更多的空闲空间。五、设置合适的表空间 把索引跟表放在相同的表空间,便于数据库的管理比如说备份的时候;放在不同的表空间(不同的硬盘)可以减少I/O的访问竞争,提高数据库的访问性能。因此,应该根据具体情况为每个索引指定表空间。六、NOLOGGING项的使用创建索引时指定该选项,oracle将不会产生重做日志记录。因此,在对大表创建索引的时候最好设置该项,这样可以节省重做日志文件的存储空间,并缩短创建索引的时间。七、装载数据后再创建索引 在装载数据之前最好不要创建索引,因为如果先建立了索引,那么每当向表中插入一条记录时,Oracle 都要对索引段的索引内容进行更新,这样会大大降低装载数据的速度。16.3 创建索引Create UNIQE|BITMAP Index schema.index_name on table_name(colum1 asc|desc, colum2 asc|desc, |express Tablespace tablespace_name pctfree n1 storagy(initial n2) Compress n3|nocompress Logging|Nologging Online Compute statistics ReverseNosort创建标准(B树)索引创建位图索引创建函数索引16.4 修改索引索引的重命名 ALTER INDEX idx_emp_name rename to new idx_emp_name;合并索引 (用来清理碎片) ALTER INDEX idx_emp_name coalesce;重建索引(用来清理碎片) ALTER INDEX idx_emp_name rebuild; 可以在重建索引时使用TABLESPACE选项,将索引转移到另一个表空间。 ALTER INDEX idx_emp_name REBUID TABLESPACE example; 管理视图主要内容 17.1 视图的概念使用视图的目的提供各种数据表现形式;提供某些安全性保证隐藏数据的逻辑复杂性并简化查询语句执行某些必须使用视图的查询简化用户权限的管理17.2 创建视图语法: Create or replace force|noforce VIEW schema.view_name( column1,column2,) As select from where With check option CONSTRAINT contraint_name with read only创建简单视图创建视图emp_view,从emp表中查询出empno,ename,job字段。 Create view EMP_VIEW As select empno,ename,job from scott.emp;创建视图-给列定义别名创建视图 -带with read only选项WITH CHECK OPTION 选项创建连接视图基于多表或视图所创建的视图,即定义视图的select子查询是一个连接查询。使用连接视图的主要目的是简化查询。查询scott方案下的dept、emp表创建出视图v_emp_dept,包含ename、dname。能查询出dname为Sales的相关人员信息。创建外联接视图创建复杂视图 复杂视图是指包含函数、表达式或分组数据的视图。使用复杂视图的主要目的是为了简化查询操作。复杂视图主要用于执行查询操作,并不用于执行DML操作。强制创建视图正常情况下,如果基本表不存在,创建视图就会失败。但是,如果创建视图的语句没有语法错误,只要使用FORCE选项(默认值为NO FORCE)就可以创建该视图。该视图被称为带错误的视图(view with errors)。此时视图处于失效(INVALID)状态,不能执行该视图定义的查询。但以后可以修复出现的错误,如创建其基础表。Oracle会在相关的视图受到访问时自动重新编译失效的视图。这样做的目的主要是为了使基础表的创建和修改与视图的创建和修改之间没有依赖性,便于同步工作,提高效率。查看视图信息查询当前方案中所有视图的信息查询当前方案中某一视图的列名信息更改视图创建视图之后,可能要改视图的定义,如修改列名或修改所对应的子查询。更改视图之后,依赖于该视图的所有视图和PL/SQL 程序都将变为INVALID状态。更改视图的方法是使用CREATE OR REPLACE VIEW 语句。这种方法代替了先删除后创建的方法,会保留在该视图上授予的各种权限,但与该视图相关的存储过程和视图会失效。视图的重新编译当基础表改变后,视图会失效。尽管Oracle会在这些视图受到访问时会自动重新编译这些视图,但也可以使用ALTER VIEW语句明确地重新编译视图。当视图被重新编译后,依赖该视图的对象就会失效。删除视图使用DROP VIEW语句删除视图。视图被删除后,该视图的定义会从词典中被删除,并且在该视图上授予的权限也将被删除。其他引用该视图的视图及存储过程等都会失效。DROP VIEW v_test-tab;注意:删除视图只是删除视图的定义,并不会删除基表的数据。17.5 在连接视图上执行DML操作在视图上进行的所有DML操作,最终都会在基础表的数据上完成。可更新连接视图和键值保存表在插入数据时,除了需要满足上面提到的条件之外,还需要保证那些没有包含在视图定义中的基表的列必须允许空值。如果在视图定义中包含了with check option子句,那么对视图的修改除了前面的那些原则之外,还必须满足指定的约束条件。键值保存表如果在连接视图中的一个基础表的主键(主键、惟一键)在它的视图中仍然存在,则称这个基础表为键值保存表。尤其是,键值保存表中的主键在它的连接视图中仍然是主键。连接视图的更新准则和DML操作一般准则INSERT准则1)插入列必须在键值保存表中2)满足这些列已有的约束条件3)一次只能插入一个表。4)使用with check option选项,不可以INSERTUPDATE准则DELETE准则查询视图的可更新列OEM中管理视图在OEM中查看、编辑、删除视图方案对象管理 - 管理表什么是Oracle数据库方案?方案是用户使用的一系列数据库对象的集合。而用户是用来连接数据库并完成存取数据库对象的数据。一个用户一般对应一个方案,该用户的方案名等于用户名,并作为该用户的缺省方案。这也就是在企业管理器的方案下看到方案名都为数据库用户名的原因。如果SCOTT用户创建了表EMP,那么SCOTT就是表EMP的所有者,SCOTT访问SCOTT用户下的EMP表时不用在表名前面加上表的所有者:SELECT * FROM EMP;如果其他用户要访问表EMP,要在表名前面加上表的所有者:SELECT * FROM scott.emp; 否则会显示没有此表。Oracle中的方案对象类型Table :表Index :索引View: 视图Synonym:同义词(方案对象的一个别名,简化访问,提高安全)Sequence:序列 (命名的顺序编号生成器)Procedure、function、trigger等 存储过程、函数、触发器 (是用户利用PL/SQL编写的命名的程序块)管理表本章内容 15.1 表概述表是Oracle数据库最基本的对象,其他许多数据库对象(如索引、视图)都以表为基础。表被用于实际存储数据。表中有列,列中存储多行数据。在关系数据库中,不同表中的数据彼此之间可能存在一定的关系。从用户角度看,表是一张二维表,即:表由行和列两部分组成,表通过行和列来组织数据。通常称表中的一行为一条记录,称表中的一列为一个字段。表和列的命名规则长度30个字节之内。必须以字母开头。由字母、数字、_、#、$组成。不能使用保留字。非法的命名,可以用“”引着。一个表内列名要唯一。表名在名称空间内必须唯一。Oracle中的数据类型字符型 char 、nchar varchar2、nvarchar2大对象数据类型 clob 、nclob blob、bfile (二进制)二进制数据类型 Row、Long Row数字型 number(p,s)时间和日期 Date,. 行数据类型RowID、URowID15.2 数据完整性与约束条件数据完整性是关系数据库模型的基本原则,是用户在表上定义的一系列规则或约束条件,以及在表之间定义的一系列相互关系。数据完整性的作用,简单地说,就是强制要求数据库中只能接受正确的、合理的数据,防止错误的或无效的数据被插入到表中。分三种类型:15.2 数据完整性与约束条件数据完整性实体完整性参照完整性用户自定义完整性15.3 管理表的策略设计表的结构表的类型标准表(按堆组织)索引表(以 B树索引段)外部表(操作系统文件中)分区表簇表表的位置及大小使用建表的相关选项 (nologging)创建表如果要在自己的方案中创建表,要求用户必须具有CREATE TABLE系统权限。如果要在其他方案中建表,则要求用户必须具有CREATE ANY TABLE系统权限。创建表时,Oracle会为该表分配相应的表段。表段的名称与表名完全相同,并且所有的数据都会被存放在该表段中。要求表的创建者必须指定表空间上具有空间配额或具有UNLIMITED TABLESPACE系统权限。Create table 语句Create table schema. table_name (column1 datatype1 default exp1 column1_constraint, column2 datatype2 default exp2 column2_constraint, table_constraint) on commit delete|preserve rows organizition heap.|index|external partition by() tablespace tablespace_name Logging|nologging compress|nocompress as query创建标准表 create table department ( deptid number(9) not null, deptno char(2) default 01 not null, name varchar2(20), address varchar2(30), constraint pk_deptid primary key(deptid) validate, constraint uniq_name unique(name) novalidate, constraint chk_address check (address in (1号楼,2号楼,3号楼,4号楼) validate)临时表Oracle 的临时表分为事务型和会话型。事务型临时表 就是指在事务处理过程中插入的记录只在事务提交或回滚之前有效,一旦事务完成,表中的记录便被自动清除。会话型临时表 指临时表中的数据在本次会话期间一直有效,直到会话结束。会话结束后表中针对此次会话的数据会自动清空。 当在临时表上执行DML操作时,既不会加锁也不会将数据变化写到重做日志中。因此不能用临时表保存永久数据。创建临时表Create global temporary table table_name ( ) on commit delete rows | on commit preserve rows其中:global temporary table指定表的类型为临时表。on commit delete rows指定表为事务临时表。on commit preserve rows指定表为会话临时表。事务临时表例子:会话临时表的例子:索引表对于普通表而言,其数据以无序方式存储;而对于索引表来说,其数据以B-树结构来组织,并且其叶子数据块既包含键列数据,也包含非键列数据。一般情况下,表及其索引数据分别存放在表段和索引段中,当在where子句中引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年遇险预案合同
- 2025年贵州省社区工作者公开招聘考试行政职业能力专项题库及答案
- 安全施工方案及应急预案
- 数学北师大版面积单位教案
- 2025年度烟草职业技能鉴定题库检测试题及答案
- 施工现场应急预案方案和措施
- 高空作业专项应急救援预案
- 2025年计量员高级职业技能鉴定试题库及答案
- 2025年华夏银行社会招聘考试模拟试题及答案
- 2025年设备维护与操作知识考试试题及解析
- GB/T 18287-2013移动电话用锂离子蓄电池及蓄电池组总规范
- 江苏省工程咨询中心公开招聘相关专业工程咨询业务人员考前预测冲刺卷一含答案带详解(3套合壹)
- 劳动者个人信息卡
- 光盘m3352工控核心板-n128li用户手册-v1
- Q∕SY 02004-2016 油气井氮气排液技术规程
- 工艺学异丁烯合成MTBE
- 门诊慢性病病种及鉴定标准
- 初中语文古诗词理解性背诵默写习题
- 安全生产目标完成情况自查报告
- 高速公路路基沉降与稳定沉降观测总报告
- HSS膝关节评分标准
评论
0/150
提交评论