答案如下,正确为T,错误为F
1、 oracle数据库系统中, 启动数据库的第一步是启动一个数据库实例。 ( T ) 2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客 户机的连接请求。( F) 3、 oracle数据库中实例和数据库是一一对应的 (非ORACLE并行服务, 非集群) 。 ( T) 4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享 的。( F ) 5、数据库字典视图ALL_视图只包含当前用户拥有的数据库对象信息。 ( F ) 8、数据字典中的内容都被保存在SYSTEM表空间中。( T ) 9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的 条件中也可以有聚集函数。( F ) 10、"上海西北京" 可以通过like ‘%上海_’查出来。( F
)
11、 表空间是oracle 最大的逻辑组成部分。Oracle数据库由一个或多个表空间 组成。 一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表 空间。( T ) 12、表空间分为永久表空间和临时表空间两种类型。( T ) 13、truncate是DDL *** 作,不能 rollback。( T ) 14、 如果需要向表中插入一批已经存在的数据, 可以在INSERT语句中使用WHERE 语句。( F ) 15、Oracle数据库中字符串和日期必须使用双引号标识。( F ) 16、Oracle数据库中字符串数据是区分大小写的。( T )
17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊 *** 作 时候保证 *** 作能正常进行。( F )
18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表 的末尾。( T ) 20、在连接 *** 作中,如果左表和右表中不满足连接条件的数据都出现在结果中, 那么这种连接是全外连接。( T ) 21、自然连接是根据两个表中同名的列而进行连接的,当列不同名时,自然连接 将失去意义。( T ) 23、PL/SQL代码块声明区可有可无。( T ) 24、 隐式游标与显式游标的不同在于显式游标仅仅访问一行, 隐式的可以访问多
行。( F )
25、隐式游标由PL/SQL维护,当执行查询时自动打开和关闭。( T ) 26、显式游标在程序中显式定义、打开、关闭,游标有一个名字。( T )
27、隐式游标的游标属性前缀是SQL。( T ) 28、显式游标的游标属性的前缀是游标名。( T ) 29、隐式游标的属性%ISOPEN总是为FALSE。(
T ) 30、显式游标的%ISOPEN根据游标的状态确定值(
F )
31、隐式游标的SELECT语句带有INTO子串,只有一行数据被处理。( T ) 32、 显式游标可以处理多行数据, 在程序中设置循环, 取出每一行数据。 ( T
)
34、可以在PL/SQL中使用GOTO语句使运行流程进行跳转。( F )
35、因为存储过程不返回值,使用时只能单独调用;而函数却能出现在能放置表 达式的任何位置。( Y )
查看页面:>
具体问题具体分析,举例来说明为什么磁盘IO成瓶颈数据库的性能急速下降了。
为什么当磁盘IO成瓶颈之后, 数据库的性能不是达到饱和的平衡状态,而是急剧下降。为什么数据库的性能有非常明显的分界点,原因是什么?
相信大部分做数据库运维的朋友,都遇到这种情况。 数据库在前一天性能表现的相当稳定,数据库的响应时间也很正常,但就在今天,在业务人员反馈业务流量没有任何上升的情况下,数据库的变得不稳定了,有时候一个最简单的insert *** 作, 需要几十秒,但99%的insert却又可以在几毫秒完成,这又是为什么了?
dba此时心中有无限的疑惑,到底是什么原因呢 磁盘IO性能变差了?还是业务运维人员反馈的流量压根就不对? 还是数据库内部出问题?昨天不是还好好的吗?
当数据库出现响应时间不稳定的时候,我们在 *** 作系统上会看到磁盘的利用率会比较高,如果观察仔细一点,还可以看到,存在一些读的IO 数据库服务器如果存在大量的写IO,性能一般都是正常跟稳定的,但只要存在少量的读IO,则性能开始出现抖动,存在大量的读IO时(排除配备非常高速磁盘的机器),对于在线交易的数据库系统来说,大概性能就雪崩了。为什么 *** 作系统上看到的磁盘读IO跟写IO所带来的性能差距这么大呢?
如果亲之前没有注意到上述的现象,亲对上述的结论也是怀疑。但请看下面的分解。
在写这个文章之前,作者阅读了大量跟的IO相关的代码,如异步IO线程的相关的,innodb_buffer池相关的,以及跟读数据块最相关的核心函数buf_page_get_gen函数以及其调用的相关子函数。为了将文章写得通俗点,看起来不那么累,因此不再一行一行的将代码解析写出来。
咱们先来提问题。 buf_page_get_gen函数的作用是从Buffer bool里面读数据页,可能存在以下几种情况。
提问 数据页不在buffer bool 里面该怎么办?
回答:去读文件,将文件中的数据页加载到buffer pool里面。下面是函数buffer_read_page的函数,作用是将物理数据页加载到buffer pool, 中显示
buffer_read_page函数栈的顶层是pread64(),调用了 *** 作系统的读函数。
buf_read_page的代码
如果去读文件,则需要等待物理读IO的完成,如果此时IO没有及时响应,则存在堵塞。这是一个同步读的 *** 作,如果不完成该线程无法继续后续的步骤。因为需要的数据页不再buffer 中,无法直接使用该数据页,必须等待 *** 作系统完成IO
再接着上面的回答提问:
当第二会话线程执行sql的时候,也需要去访问相同的数据页,它是等待上面的线程将这个数据页读入到缓存中,还是自己再发起一个读磁盘的然后加载到buffer的请求呢? 代码告诉我们,是前者,等待第一个请求该数据页的线程读入buffer pool。
试想一下,如果第一个请求该数据页的线程因为磁盘IO瓶颈,迟迟没有将物理数据页读入buffer pool, 这个时间区间拖得越长,则造成等待该数据块的用户线程就越多。对高并发的系统来说,将造成大量的等待。 等待数据页读入的函数是buf_wait_for_read,下面是该函数相关的栈。
通过解析buf_wait_for_read函数的下层函数,我们知道其实通过首先自旋加锁pin的方式,超过设定的自旋次数之后,进入等待,等待IO完成被唤醒。这样节省不停自旋pin时消耗的cpu,但需要付出被唤起时的开销。
再继续扩展问题: 如果会话线程A 经过物理IO将数据页1001读入buffer之后,他需要修改这个页,而在会话线程A之后的其他的同样需要访问数据页1001的会话线程,即使在数据页1001被入读buffer pool之后,将仍然处于等待中。因为在数据页上读取或者更新的时候,同样需要上锁,这样才能保证数据页并发读取/更新的一致性。
由此可见,当一个高并发的系统,出现了热点数据页需要从磁盘上加载到buffer pool中时,造成的延迟,是难以想象的。因此排在等待热点页队列最后的会话线程最后才得到需要的页,响应时间也就越长,这就是造成了一个简单的sql需要执行几十秒的原因。
再回头来看上面的问题,mysql数据库出现性能下降时,可以看到 *** 作系统有读IO。 原因是,在数据库对数据页的更改,是在内存中的,然后通过检查点线程进行异步写盘,这个异步的写 *** 作是不堵塞执行sql的会话线程的。所以,即使看到 *** 作系统上有大量的写IO,数据库的性能也是很平稳的。但当用户线程需要查找的数据页不在buffer pool中时,则会从磁盘上读取,在一个热点数据页不是非常多的情况下,我们设置足够大的innodb_buffer_pool的size, 基本可以缓存所有的数据页,因此一般都不会出现缺页的情况,也就是在 *** 作系统上基本看不到读的IO。 当出现读的IO时,原因时在执行buf_read_page_low函数,从磁盘上读取数据页到buffer pool, 则数据库的性能则开始下降,当出现大量的读IO,数据库的性能会非常差。
两个意思:
sga是一组包含一个Oracle实例的数据和控制信息的共享内存结构。主要是用于存储数据库信息的内存区,该信息为数据库进程所共享(PGA不能共享的)。
SGA系统全局区的英文简称,SGA (System Global Area)是Oracle Instance的 基本组成部分,在实例启动时分配。是一组包含一个Oracle实例的数据和控制信息的共享内存结构。
享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据一次从输入文件到共享内存区,另一次从共享内存区到输出文件。
扩展资料:
1、SGA的构成——数据和控制信息,我们下面会详细介绍。
2、SGA是共享的,即当有多个用户同时登录了这个实例,SGA中的信息可以被它们同时访问(当涉及到互斥的问题时,由latch和sequence控制)。
通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内。在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序 *** 作而产生的临时数据。但是这个分区的容量是有限的。当这个分区的大小不足以容纳排序后所产生的记录时,数据库系统就会将临时数据存放到临时表空间中。这就是临时表空间的来历。看起来好像这个临时表空间是个临时工,对于数据库的影响不会有多大。其实大家这是误解这个临时表空间了。在用户进行数据库 *** 作时,排序、分组汇总、索引这些作业是少不了,其会产生大量的临时数据。为此基本上每个数据库都需要用到临时表空间。而如果这个临时表空间设置不当的话,则会给数据库性能带来很大的负面影响。为此管理员在维护这个临时表空间的时候,不能够掉以轻心。要避免因为临时表空间设置不当影响数据库的性能。
既然楼上已经说了9i之前的,我就说下9i之后的吧!
9i较之于8i更易于管理。
并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(Cache Fusion)技术交换信息,交换速度提高100倍以上。
9i可以在线修改内核参数和内存分配,8i不行。
数据文件和表空间管理,8i手工管理,9i自动管理。
9i比8i增强了对ANSI SQL99的支持。
9i比8i增强了故障后的快速恢复(Fast-start)。
8i只支持物理备份(physical backup)数据库,9i还增加了支持逻辑备份(logical backup)数据库,使备份数据库除了作为主数据库的镜像外,还可以提供其他数据服务
Oracle 10g比9i多了哪些新特性?
10g支持网格(Grid),支持自动管理(Automatic Management)。
10g的g是"Grid"缩写,支持网格计算,即,多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中均衡(Load Balance),按需增删结点,避免单点故障(Single Point of
Faliure)。
安装容易,安装工作量比9i减少了一半。
新增基于浏览器的企业管理器(Enterprise Manager)。
自动存储管理(ASM),增删硬盘不再需要 *** 作系统管理员设置的镜像、负载均衡、物理卷、逻辑卷、分区、文件系统,只要打一条Oracle命令,ASM会自动管理增加或删除的硬盘。
内存自动化,根据需要自动分配和释放系统内存。
SQL性能调整自动化。
免费提供基于浏览器的小应用开发工具Oracle Application Express(原名HTML DB),支持10g和9i R2。
快速纠正人为错误的闪回(Flashback)查询和恢复,可以恢复数据库、表甚至记录。(这个新的功能我觉得非常的好用,它就像windows系统是把东西删除以后放到回收站里,只是重新命了一个名字,
如果你发现删除错了,你可以回收)
数据泵(Data Pump)高速导入、导出数据,比传统方法导出速度快两倍以上,导入速度快15--45倍。
精细审计(Fine-Grained Auditing),记录一切对敏感数据的 *** 作。
存储数据的表空间(Tablespace)跨平台复制,极大的提高数据仓库加载速度。
流(Streams)复制,实现低系统消耗、双向(double-direction)、断点续传(resume from break point)、跨平台(cross platform)、跨数据源的复杂复制。
容灾的数据卫士(Data Guard)增加了逻辑备份功能,备份数据库日常可以运行于只读状态,充分利用备份数据库。
支持许多新EE选件,加强数据库内部管理的“Database Vault”,数据库活动的审计的(Audit Vault),数据仓库构建高级功能(Warehouse Builder Enterprise ETL, Warehouse Builder Data
Quality)
Oracle 11g比10g多了哪些新特性?
11 g扩展了Oracle 独家具有的提供网格计算优势的功能,您可以利用它来提高用户服务水平、减少停机时间以及更加有效地利用IT资源,同时还可以增强全天候业务应用程序的性能、可伸缩性和安全性
。
利用真正应用测试(RAT)尽量降低更改的风险
11 g降低了数据库升级以及其他硬件和 *** 作系统更改的成本,显著简化了更改前后的系统测试以便您可以识别和解决问题。例如:
利用Database Replay,您可以在数据库级别轻松捕获实际的生产负载并在您的测试系统上重新播放,这样您可以全面测试系统更改(包括关键的并发特性)的影响。
SQL Performance Analyzer识别结构化查询语言) SQL(执行计划更改和性能回退。然后,可以使用SQL Tuning Advisor解决识别的问题,方法是还原到原始的执行计划或进一步优化。
利用管理自动化提高DBA 效率
Oracle 数据库11 g继续致力于(从Oracle9i数据库开始一直到Oracle 数据库10 g)显著简化和完全自动化DBA 任务。Oracle数据库11 g中的新功能包括:
利用自学功能自动进行SQL 优化系统全局区(SGA)和程序全局区( PGA)的内存缓存区的自动、统一调整新的advisor用于分区、数据恢复、流性能和空间管理针对自动数据库诊断监视器(ADDM)的增强,能
够提供Oracle 真正应用集群(Oracle RAC)环境中的更好的性能全局视图以及改进的性能比较分析功能。
利用故障诊断快速解决问题
Oracle 数据库11 g中新增的故障诊断功能使客户在发生错误后捕获Oracle
Support所需的数据变得极为简单。这可以加速问题的解决,减少客户重现问题的需要。
尽量降低停机成本
通过Oracle Data Guard快速恢复数据
Oracle Data Guard在本地和远程服务器之间协调数据库的维护和同步以便从灾难或站点故障快速恢复。Oracle数据库11 g提供了大量显著的Oracle Data Guard增强,包括
可以在物理备用系统上运行实时查询用于报表和其他目的
可以通过将物理备用系统暂时转换为逻辑备用系统执行联机的、滚动的数据库升级
支持测试环境的快照备用系统
此外,物理和逻辑备用的性能都有提高。逻辑备用现在支持可扩展标记语言(XML)类型字符大型对象(CLOB)数据类型和透明的数据加密。现在支持自动的、快速启动的故障切换以支持异步传输。
Oracle 数据库11 g提供了几个针对自动存储管理的重要的高可用性增强,
包括:
支持滚动升级;自动坏块检测和修复;快速镜像重新同步,该功能可以有效地重新同步存储网络连接性暂时丢失时自动存储管理镜像的存储阵列
自动存储管理的性能增强使得大型数据库可以更快地打开并减少SGA 内存消耗。这些增强还允许DBA增加存储分配单元大小以加快大型序列输入/输出(I/O)
显著增加正常运行时间
Oracle数据库11 g使您可以应用很多一次性数据库补丁(包括诊断补丁),而没有停机时间。新的数据恢复advisor通过快速识别故障根本原因、为DBA提供可用的恢复选项,极大地减少了停机时间,在
某些情况下,还通过“自我恢复”机制自动纠正问题。
Oracle 数据库11 g还有其他高性能提高,包括:自动编译数据库中的PL/SQL 和Java;更快的触发器,包括更加有效地调用每行触发器;更快的简单SQL *** 作;更快的Oracle Data Guard 和Oracle
Streams 复制;与网络文件系统(NFS) 存储设备更快、更可靠的直接连接;更快的升级;大型文件更快的备份/还原;更快的备份压缩
Oracle 数据库11 g包括大量新的ILM特性,例如
新的分区功能,包括:按父/子引用分区;按虚拟列分区
Oracle数据库11 g还具有带Oracle闪回数据归档的Total Recall,使您可以在选定的表中查询以前的数据,从而提供了一种简单实用的向数据中添加时间维度的方法以便于更改跟踪、ILM、审计和合规。
其他高可用性增强
Oracle 数据库11g还有其他高可用性增强,包括:Oracle闪回事务查询,提供带其他相关事务更改的流氓事务的按钮更改具有更多可传输选项的增强的平台移植和数据移动,包括可传输分区、模式和跨
平台数据库
Oracle恢复管理器(RMAN)支持Windows Volume Shadow Copy Service ( VSS )快照,从而实现与Windows备份更紧密的集成优化性能和可靠性
合规、法律取证以及整合数据仓库的趋势导致数据库的大小每两年就会增加两倍,这极大地影响了大型数据库的存储成本和性能、可靠性以及可管理性。Oracle 数据库11 g使组织可以使用低成本的服务
器和模块化的存储器轻松伸缩大型的事务和数据仓库系统并提供快速的全天候数据访问。Oracle 数据库11 g提供新的创新特性以进一步提高要求极严格的环境的性能和可伸缩性。利用SecureFiles安全
地存储您的所有数据SecureFiles 是Oracle用于在数据库中存储大型对象) LOB (例如图像、大型文本对象或包括XML、医学成像以及地理空间栅格对象在内的高级数据类型)的下一代产品。SecureFiles
提供能够完全与文件系统相媲美的卓越性能。此外,它还提供高级功能,例如智能压缩、透明加密以及透明的重复删除。
通过联机事务处理压缩提高性能并尽量降低存储成本
Oracle 数据库11 g支持联机事务处理(OLAP)应用程序中常用的更新、插入和删除 *** 作的数据压缩。以前的Oracle数据库版本支持数据仓库应用程序常用的批量数据加载 *** 作的压缩。Oracle 数据库11 g
OLTP表压缩通过更加高效地使用内存来缓存数据以及减少表扫描的I/O提高了数据库性能。利用OLTP表压缩,您可以利用最小的处理开销达到2 到3倍的压缩比。
实际上 为了保证ORACLE数据库运行在最佳的性能状态下 在信息系统开发之前就应该考虑数据库的优化策略 优化策略一般包括服务器 *** 作系统参数调整 ORACLE数据库参数调整 网络性能调整 应用程序SQL语句分析及设计等几个方面 其中应用程序的分析与设计是在信息系统开发之前完成的
分析评价ORACLE数据库性能主要有数据库吞吐量 数据库用户响应时间两项指标 数据库吞吐量是指单位时间内数据库完成的SQL语句数目 数据库用户响应时间是指用户从提交SQL语句开始到获得结果的那一段时间 数据库用户响应时间又可以分为系统服务时间和用户等待时间两项 即
数据库用户响应时间=系统服务时间 + 用户等待时间
上述公式告诉我们 获得满意的用户响应时间有两个途径 一是减少系统服务时间 即提高数据库的吞吐量 二是减少用户等待时间 即减少用户访问同一数据库资源的冲突率
性能优化包括如下几个部分
ORACLE数据库性能优化之一 调整数据结构的设计
这一部分在开发信息系统之前完成 程序员需要考虑是否使用ORACLE数据库的分区功能 对于经常访问的数据库表是否需要建立索引等
ORACLE数据库性能优化之二 调整应用程序结构设计
这一部分也是在开发信息系统之前完成 程序员在这一步需要考虑应用程序使用什么样的体系结构 是使用传统的Client/Server两层体系结构 还是使用Browser/Web/Database的三层体系结构 不同的应用程序体系结构要求的数据库资源是不同的
ORACLE数据库性能优化之三 调整数据库SQL语句
应用程序的执行最终将归结为数据库中的SQL语句执行 因此SQL语句的执行效率最终决定了ORACLE数据库的性能 ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row level manager)来调整优化SQL语句
ORACLE数据库性能优化之四 调整服务器内存分配
内存分配是在信息系统运行过程中优化配置的 数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区 日志缓冲区和共享池的大小 还可以调整程序全局区(PGA区)的大小 需要注意的是 SGA区不是越大越好 SGA区过大会占用 *** 作系统使用的内存而引起虚拟内存的页面交换 这样反而会降低系统
ORACLE数据库性能优化之五 调整硬盘I/O 这一步是在信息系统开发之前完成的
数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上 做到硬盘之间I/O负载均衡
ORACLE数据库性能优化之六 调整 *** 作系统参数
例如 运行在UNIX *** 作系统上的ORACLE数据库 可以调整UNIX数据缓冲池的大小 每个进程所能使用的内存大小等参数
lishixinzhi/Article/program/Oracle/201311/17687
以上就是关于oracle数据库的题目,求答案。。。。全部的内容,包括:oracle数据库的题目,求答案。。。。、哪些因素影响了数据库性能、sga是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)