Oracle数据库的常见问题有哪些?
Oracle数据库的常见问题有哪些?
问:连接次序与谓词求值 在下面的查询中,WHERE 语句的哪一部分先执行? Select field names from emp, dept where emp。dept_num = dept。num and emp。name Like 'S%' and dept。
name='IT';答:执行次序随已有的索引、统计、和session/init。ora参数的不同而变化。 假定已有一个建立在DEPT(name)和EMP(dept_num)上的索引。假定优化器认为DEPT是唯一的,它可能按下面的顺序进行操作: 利用建立在DEPT(name)上的索引查找dept列 利用建立在EMP(dept_num)上的索引查找匹配的emp列(即连接emp。
dept_num = dept。num) 依据建立在emp。ename like 'S%'进行过滤 现在,我们假定没有建立在EMP(dept_num)上的索引,也没有建立在DEPT(name)上的索引,而存在建立在EMP(name)和DEPT(num)上的索引。
优化器可能按下面的次序进行操作: 利用建立在EMP(name)上的索引找到带有S的EMPS 利用建立在DEPT(num)上的索引找到匹配项 SQL> create table t ( x varchar2 (1), y varchar2 (1) ); Table created。
SQL> insert into t values ( 'a', '1' ); 1 row created。 SQL> insert into t values ( 'b', 'x' ); 1 row created。现在根据这个表运行一个查询:查找满足x='a',y=1的行。
SQL> select * from t where x = 'a' and y = 1; ERROR: ORA-01722: invalid number no rows selected(错误,无效的数字,没有选择任何行)呦,没有成功。
在这种情况下,数据库首先执行Y=1,当找到Y='X'的行后,很显然,它不能将'X'转换为一个数字,所以失败了。而下面的程序将给出不同的结果: SQL> analyze table t compute statistics; Table analyzed。
(表已经分析过) SQL> select * from t where x = 'a' and y = 1; X Y - - a 1使用不同的优化器模式,成功了!为什么?优化器说:“嘿,检查x= 'a'要比检查y=1来得快,因为在y=1中有一个将y从字符变为数字的转换。
所以,我先检查x= 'a',然后再检查y=1。” 这个例子说明谓词执行的次序可能是不确定的,你不能指望有一种特定的执行次序。也就是说,当你依靠一个隐含的转换时,必须非常谨慎。 问:显示SGA--fixed size(固定大小)与variable size(可变大小) 当在svrmgr提示符下运行 “show SGA”时,fixed size和variable size是什么意思? 答:fixed size就是SGA中固定组件(它在编译oracle 数据库本身时就固定于其中)的大小。
它是固定大小的内存,用来指向SGA的其它部分。SGA这一部分的大小是不能改变的。
答:一、组和安全性: 在操作系统下建立用户组也是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只DBA可...详情>>
问:同事ip:10.101.107.28 我的IP:10.101.104.23我们在...
答:你们公司是WINDOWS域环境吗,如果是的话,你在网上邻居里应该能看到对方的主机。让她把文件夹共享出来就可以。 如果不是WINDOWS域,那得看你们是不是在一个...详情>>
问:数据结构顺序表的建立,可定义顺序表 #define maxnum elemtyp...
答:打开VC ,然后点击新建,出来界面之后选择Win32 Console Application并输入工程的名称和选择项目的位置,然后出现“一个空工程”,在点击“...详情>>