<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT公司面试手册 &#187; Oracle</title>
	<atom:link href="http://www.mianwww.com/html/category/it-interview/oracle-it-interview/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mianwww.com</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 11:48:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>oracle能否限制某个用户的访问的进程（/processes？）数量？</title>
		<link>http://www.mianwww.com/html/2012/01/12925.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12925.html#comments</comments>
		<pubDate>Tue, 31 Jan 2012 13:26:44 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12925</guid>
		<description><![CDATA[可以 使用PROFILE 先创建一个PROFILE create profile ses_conn limit sessions_per_user n; n为最大连接数。 然后将该PROFILE付给需要限制的用户。 alter user xxx profile ses_conn; 最后别忘了确认RESOURCE_LIMIT参数已设为TRUE。 如果没有，用 alter system set recource_limit=TRUE;]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12925.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle数据库碎片对系统的影响有哪些？</title>
		<link>http://www.mianwww.com/html/2012/01/12884.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12884.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:12:07 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12884</guid>
		<description><![CDATA[(1)导致系统性能减弱 如上所述，当要满足一个空间要求时，数据库将首先查找当前最大的自由范围，而&#8221;最大&#8221;自由范围逐渐变小，要找到一个足够大的自由范围已变得越来越困难，从而导致表空间中的速度障碍，使数据库的空间分配愈发远离理想状态; (2)浪费大量的表空间 尽管有一部分自由范围(如表空间的pctincrease为非0)将会被smon(系统监控)后台进程周期性地合并，但始终有一部分自由范围无法得以自动合并，浪费了大量的表空间。 3、自由范围的碎片计算 由于自由空间碎片是由几部分组成，如范围数量、最大范围尺寸等，我们可用fsfi&#8211;free space fragmentation index(自由空间碎片索引)值来直观体现: fsfi=100*sqrt(max(extent)/sum(extents))*1/sqrt(sqrt(count(extents))) 可以看出，fsfi的最大可能值为100(一个理想的单文件表空间)。随着范围的增加，fsfi值缓慢下降，而随着最大范围尺寸的减少，fsfi值会迅速下降。 下面的脚本可以用来计算fsfi值: rem fsfi value compute rem fsfi.sql column fsfi format 999,99 select tablespace_name,sqrt(max(blocks)/sum(blocks))* (100/sqrt(sqrt(count(blocks)))) fsfi from dba_free_space group by tablespace_name order by 1; spool fsfi.rep; / spool off; 比如，在某数据库运行脚本fsfi.sql,得到以下fsfi值: tablespace_name fsfi &#8211; &#8212; rbs 74.06 system 100.00 temp 22.82 tools 75.79 users 100.00 user_tools [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12884.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oracle数据库碎片是如何产生的</title>
		<link>http://www.mianwww.com/html/2012/01/12882.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12882.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:11:20 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12882</guid>
		<description><![CDATA[当生成一个数据库时，它会分成称为表空间(tablespace)的多个逻辑段(segment)，如系统(system)表空间,临时(temporary)表空间等。一个表空间可以包含多个数据范围(extent)和一个或多个自由范围块，即自由空间(free space)。 表空间、段、范围、自由空间的逻辑关系如下: 当表空间中生成一个段时，将从表空间有效自由空间中为这个段的初始范围分配空间。在这些初始范围充满数据时，段会请求增加另一个范围。这样的扩展过程会一直继续下去，直到达到最大的范围值，或者在表空间中已经没有自由空间用于下一个范围。最理想的状态就是一个段的数据可被存在单一的一个范围中。这样，所有的数据存储时靠近段内其它数据，并且寻找数据可少用一些指针。但是一个段包含多个范围的情况是大量存在的，没有任何措施可以保证这些范围是相邻存储的，如图〈1〉。当要满足一个空间要求时，数据库不再合并相邻的自由范围(除非别无选择)， 而是寻找表空间中最大的自由范围来使用。这样将逐渐形成越来越多的离散的、分隔的、较小的自由空间，即碎片。]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12882.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oracle dbms_job:每隔特定时间执行特定任务</title>
		<link>http://www.mianwww.com/html/2012/01/12874.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12874.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:05:40 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12874</guid>
		<description><![CDATA[Oracle JOB: 一、设置初始化参数 job_queue_processes sql&#62; alter system set job_queue_processes=n;（n&#62;0） job_queue_processes最大值为1000 查看job queue 后台进程 sql&#62;select name,description from v$bgprocess; 二、dbms_job package 用法介绍 包含以下子过程： Broken()过程。 change()过程。 Interval()过程。 Isubmit()过程。 Next_Date()过程。 Remove()过程。 Run()过程。 Submit()过程。 User_Export()过程。 What()过程。 1、Broken()过程更新一个已提交的工作的状态，典型地是用来把一个已破工作标记为未破工作 这个过程有三个参数：job 、broken与next_date。 PROCEDURE Broken ( job　 IN binary_integer, Broken　　IN boolean, next_date IN date :=SYSDATE) job参数是工作号，它在问题中唯一标识工作。 broken参数指示此工作是否将标记为破——TRUE说明此工作将标记为破，而FLASE说明此工作将标记为未破。 next_date参数指示在什么时候此工作将再次运行。此参数缺省值为当前日期和时间。 job如果由于某种原因未能成功之行，oracle将重试16次后，还未能成功执行，将被标记为broken重新启动状态为broken的job，有如下两种方式; a、利用dbms_job.run()立即执行该job sql&#62;begin sql&#62;dbms_job.run(:jobno) 该jobno为submit过程提交时返回的job number [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12874.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用pl/sql developer 导出数据的方式有哪些？</title>
		<link>http://www.mianwww.com/html/2012/01/12868.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12868.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:02:20 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12868</guid>
		<description><![CDATA[用pl/sql developer 导出表的数据时有三种方式： Oracle Export，Sql Insert，pl/sql developer 只有 “Oracle Export” 方式导出再导入后，表结构和索引结构没有发生变化，另两种方式都改变了索引类型。另外Sql Insert的那个可以导成sql，可以用文本编辑器打开。 pl/sql developer 也可以导出，但文本编辑器不能打开。 区别： Oracle Export，Sql Insert，pl/sql developer 第一种是导出为 .dmp的文件格式， .dmp 文件是二进制的，可以跨平台，还能包 含权限，效率也很不错，用得最广 第二种是导出为.sql 文件的，可用文本编辑器查看，通用性比较好，但效率不如第 一种，适合小数据量导入导出。尤其注意的是表中不能有大字段（ blob,clob,long ）， 如果有，会提示不能导出( 提示如下： table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead) ，可以用第一种和第三种方式导出。 第三种是导出为.pde 格式的， .pde为Pl/sql developer自有的文件格式，只能用Pl/sql developer自己导入导出；不能用编辑器查看， 导出数据到 [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12868.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oracle时间比较</title>
		<link>http://www.mianwww.com/html/2012/01/12864.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12864.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 12:57:46 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12864</guid>
		<description><![CDATA[&#8211;MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL&#62; select months_between(&#8217;19-12月-1999&#8242;,&#8217;19-3月-1999&#8242;) mon_between from dual; MON_BETWEEN &#8212;&#8212;&#8212;&#8211; 9 SQL&#62;select months_between(to_date(&#8217;2000.05.20&#8242;,&#8217;yyyy.mm.dd&#8217;),to_date(&#8217;2005.05.20&#8242;,&#8217;yyyy.dd&#8217;)) mon_betw from dual; MON_BETW &#8212;&#8212;&#8212; -60 Oracle计算时间差表达式 &#8211;获取两时间的相差豪秒数 select ceil((To_date(&#8217;2008-05-02 00:00:00&#8242; , &#8216;yyyy-mm-dd hh24-mi-ss&#8217;) &#8211; To_date(&#8217;2008-04-30 23:59:59&#8242; , &#8216;yyyy-mm-dd hh24-mi-ss&#8217;)) * 24 * 60 * 60 * 1000) 相差豪秒数 FROM DUAL; /* 相差豪秒数 &#8212;&#8212;&#8212;- 86401000 1 row selected */ &#8211;获取两时间的相差秒数 select ceil((To_date(&#8217;2008-05-02 [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12864.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据库面试题(SQL+ORACLE)</title>
		<link>http://www.mianwww.com/html/2012/01/12802.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12802.html#comments</comments>
		<pubDate>Fri, 20 Jan 2012 15:13:21 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12802</guid>
		<description><![CDATA[数据库基础(面试常见题) 一、数据库基础 1. 数据抽象：物理抽象、概念抽象、视图级抽象,内模式、模式、外模式 2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control) 数据定义：Create Table,Alter Table,Drop Table, Craete/Drop Index等 数据操纵：Select ,insert,update,delete, 数据控制：grant,revoke 3. SQL常用命令： CREATE TABLE Student( ID NUMBER PRIMARY KEY, NAME VARCHAR2(50) NOT NULL);//建表 CREATE VIEW view_name AS Select * FROM Table_name;//建视图 Create UNIQUE INDEX index_name ON TableName(col_name);//建索引 INSERT INTO tablename {column1,column2,…} values(exp1,exp2,…);//插入 INSERT INTO Viewname {column1,column2,…} values(exp1,exp2,…);//插入视图实际影响表 UPDATE [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12802.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle笔试题</title>
		<link>http://www.mianwww.com/html/2012/01/12794.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12794.html#comments</comments>
		<pubDate>Fri, 20 Jan 2012 05:52:29 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12794</guid>
		<description><![CDATA[一、ORACLE实例与数据库有什么区别？  （容易） ORACLE实例 = 进程 + 进程所使用的内存(SGA) 实例是一个临时性的东西，你也可以认为它代表了数据库某一时刻的状态！ 数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件 数据库是永久的，是一个文件的集合。 ORACLE实例和数据库之间的关系 1.临时性和永久性 2.实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义 3.一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库 4.一个数据库可被许多实例同时装载和打开(即RAC)，RAC环境中实例的作用能够得到充分的体现! 二、SGA主要有那些部分，主要作用是什么  （容易） 数据库信息存储在SGA中，并由多个数据库进程共享。SGA有多个内存结构，按其作用不同，可分为共享池、数据缓冲区及日志缓冲区。 共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。如果共享池太小，则运行SQL、PL/SQL程序所用的时间就会较长，影响数据库的性能。 数据缓冲区用于存储从磁盘数据文件中读入的数据，所有用户共享。数据缓冲区的大小对数据库的读取速度有直接的影响。 日志数据首先产生于日志缓冲区，当日志缓冲区的日志数据达到一定数量时，由日志写入进程LGWR将日志数据写入日志文件中。 三、Oracle进程主要有哪些，作用是什么    （容易） Oracle进程主要有用户进程、服务器进程和后台进程。 用户进程是一个需要与Oracle服务器进行交互的程序。 服务器进程是一个用于处理连接到该实例的用户进程的请求。服务器进程和用户进程通信并为所连接的用户请求服务。 后台进程主要作用是使系统性能最好和协调多个用户。其主要包括进程监控进程(PMON，在用户进程出现故障时执行进程恢复)、系统监控进程(SMON，在实例启动时执行实例恢复、整理数据文件的自由空间、释放不再使用的临时段)、数据写入进程（DBWR，主要负责将数据缓冲区内的数据写入数据文件）、日志写入进程（LGWR，主要负责将日志数据区内的数据写入日志文件）及检查点进程（CKPT，其作用是保证所有修改过的数据库缓冲区都被写入数据库文件）。 四、数据描述有通常有哪几种形式？（中等） 数据描述有物理描述和逻辑描述两种形式。 物理数据描述指数据在存储设备上的存储方式，物理数据是实际存放在存储设备上的数据。 逻辑数据描述指程序员或用户用以操作的数据形式，是抽象的概念化数据。 五、和排序相关的内存在8i和9i分别怎样调整，临时表空间的作用是什么（中等） Oracle 8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存;如果排序操作不能在sort_area_size中完成,就会用到temp表空间。 Oracle 9i中如果workarea_size_policy=auto时,排序在pga内进行,通常pga_aggregate_target的1/20可以用来进行disk sort;如果workarea_size_policy=manual时,排序需要的内存由sort_area_size决定。 在执行order by/group [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12794.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据库乱码的原因和解决</title>
		<link>http://www.mianwww.com/html/2012/01/12711.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12711.html#comments</comments>
		<pubDate>Sun, 08 Jan 2012 03:01:13 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12711</guid>
		<description><![CDATA[在SQL*Plus中用insert插进的都是中文的，为什么一存入服务器后，再select出的就是???” “有的时候，服务器数据先导出，重装服务器，再导入数据，结果，发生数据查询成???” …… 这些问题，一般是因为字符集设置不对造成的。 非常久以来，字符集一直是困扰着众多Oracle爱好者的问题，笔者从事Oracle数据库管理和应用已几年了，经常接到客户的类似上面提到的有关数据库字符集的“告急”和“求救”，在此我们就这个问题做一些分析和探讨。 首先，我们要明确什么是字符集？字符集是个字节数据的解释的符号集合,有大小之分,有相互的包括关系,如us7ascii就是zhs16gbk的子集, 从us7ascii到zhs16gbk不会有数据解释上的问题,不会有数据丢失,Oracle对这种问题也需求从子集到超集的导出受支持,反之不行。在所有的字符集中utf8应该是最大,因为他基于unicode,双字节保存字符(也因此在存储空间上占用更多)。 其次，一旦数据库创建后，数据库的字符集是不能改动的。因此，在设计和安装之初考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集，即数据库字符集应该是所有客户字符集的超集。 在实际应用中，和字符集问题关系最大的恐怕就是exp/imp了。在做exp/imp时，如果Client 和Server的nls_lang设置是相同的，一般就没有问题的。不过，要在两个不同字符集的系统之间导数据就经常会有这样或那样的问题，如，导出时数据库的显示正常，是中文，当导入到其他系统时，就成了乱码，这也是一类常见问题。 目前，介绍一些和字符集有关的NLS_LANG参数， NLS_LANG格式： NLS_LANG = language_territory.charset 有三个组成部分（语言、地域和字符集），每个成分控制了NLS子集的特性。其中：language 指定服务器消息的语言。 territory 指定服务器的日期和数字格式。 charset 指定字符集 例如： AMERICAN_AMERICA.US7SCII AMERICAN _ AMERICA. ZHS16GBK 更有一些子集能更明确定义NLS_LANG参数： DICT.BASE 数据字典基本 表版本 DBTIMEZONE 数据库时区 NLS_LANGUAGE 语言 NLS_TERRITORY 地域 NLS_CURRENCY 本地货币字符 NLS_ISO_CURRENCY ISO货币字符 NLS_NUMERIC_CHARACTERS 小数字符和组 分隔开 NLS_CHARACTERSET 字符集 NLS_CALENDAR 日历系统 NLS_DATE_FORMAT 缺省的日期格式 NLS_DATE_LANGUAGE 缺省的日期语言 NLS_SORT 字符排序序列 NLS_TIME_FORMAT 时间格式 [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12711.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle基础面试题</title>
		<link>http://www.mianwww.com/html/2012/01/12709.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12709.html#comments</comments>
		<pubDate>Sun, 08 Jan 2012 03:00:20 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12709</guid>
		<description><![CDATA[什么是替换变量？它有什么用？ 答：在SQL*Plusk中用变量来替代列名或表达式，该变量称为替换变量。 执行带替换变量的语句时，用户会得到提示，要求输入具体的值。用户输入的值存储在预定义的变量中。 什么是表空间？表空间的作用是什么？ 答： 表空间是由一个或多个磁盘文件构成的，一个数据库中的数据被逻辑地存储在表空间上，表空间相当于操作系统中的文件夹，表空间实质上就是组织数据文件的一种途径。 主要用于管理逻辑对象。在将数据插入Oracle数据库之前，必须首先建立表空间，然后将数据插入表空间的一个对象中。 什么是假脱机输出？它有什么用？ 答：假脱机只将信息写到磁盘文件的一个过程。 记录一系列命令和结果或者存储来自一个命令的大量输出结果。 什么是Oracle数据字典？它有哪几种？ 答：Oracle数据字典由一组表和视图构成，用于存储Oracle系统的活动信息和所有用户数据库的定义信息等。 根据所存储内容的不同，可以把数据字典划分为两大类：表态数据字典和动态性能表，数据字典是数据库系统的一部分，它所在的表空间为SYSTEM表空间，动态性能表是一组虚拟表，记录了当前数据库的活动情况和性能参数。 什么是同义词？它有哪几种？它有什么作用？ 答：同义词是指用新的标识符来命名一个已经存在的数据对象，是数据库对象（表、视图、序列、过程、函数、包等）的别名。 同义词可划分为两类：公用（PUBLIC）同义词和私有（PRIVATE）同义词 使用同义词能够掩盖一个数据库对象的名字及其持有者，也可以为一个分布式数据库的远程对象提供位置透明性。 什么是序列？它有什么用？ 答：序列是以有序的方式创建一个不重复的整数值的数据库对象。 使用序列可以减少编写序列生成代码所需的应用代码的工作量，程序员经常用序列来简化一些程序的设计工作。]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12709.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

