易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Oracle

ORACLE SQL 优化

http://kang275284.javaeye.com/blog/154331
一、 先介绍一下oracle
的SGA:数据库的系统全局区,SGA主要由三部分构
成:共享池、数据缓冲区、日志缓冲区。
1、 共享池又由两部分构成:共享SQL

和数据字典缓冲区。共享SQL
区专门存放用户SQL

令,oracle
使用最近最少使用等优先级算法来更新覆盖;数据字典缓冲区(library

cache)存放数据库运行的动态信息。数据库运行一段时间后,DBA需要查看这些内存区域的命中率以从数据库角度对数据库性能调优。通过执行下述语句查
看:
select (sum(pins - reloads)) / sum(pins) "Lib Cache"  from 
v$librarycache;
--查看共享SQL
区的重用率,最好在90%以上,
否则需要增加共享池的大小。
select (sum(gets - getmisses - usage - fixED
)) / sum(gets) "Row
Cache"  from v$rowcache;
--查看数据字典缓冲区的命中率,最好在90%以上,否则需要增加共享池的大小。
2、 
数据缓冲区:存放sql
运行结果抓取到的data block;
 SELECT
name, value   from v$sysstat   WHERE name IN ('db block gets',
'consiste ......

ORACLE SQL 优化

http://kang275284.javaeye.com/blog/154331
一、 先介绍一下oracle
的SGA:数据库的系统全局区,SGA主要由三部分构
成:共享池、数据缓冲区、日志缓冲区。
1、 共享池又由两部分构成:共享SQL

和数据字典缓冲区。共享SQL
区专门存放用户SQL

令,oracle
使用最近最少使用等优先级算法来更新覆盖;数据字典缓冲区(library

cache)存放数据库运行的动态信息。数据库运行一段时间后,DBA需要查看这些内存区域的命中率以从数据库角度对数据库性能调优。通过执行下述语句查
看:
select (sum(pins - reloads)) / sum(pins) "Lib Cache"  from 
v$librarycache;
--查看共享SQL
区的重用率,最好在90%以上,
否则需要增加共享池的大小。
select (sum(gets - getmisses - usage - fixED
)) / sum(gets) "Row
Cache"  from v$rowcache;
--查看数据字典缓冲区的命中率,最好在90%以上,否则需要增加共享池的大小。
2、 
数据缓冲区:存放sql
运行结果抓取到的data block;
 SELECT
name, value   from v$sysstat   WHERE name IN ('db block gets',
'consiste ......

Oracle NULL 空字符串。。。。。。

含义解释:
问:什么是NULL?
答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。
ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:
1、主键字段(primary key),
2、定义时已经加了NOT NULL限制条件的字段
说明:
1、等价于没有任何值、是未知数。
2、NULL与0、空字符串、空格都不同。
3、对空值做加、减、乘、除等运算操作,结果仍为空。
4、NULL的处理使用NVL函数。
5、比较时使用关键字用“is null”和“is not null”。
6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中,用nvl(列名,0)处理后再查。
7、排序时比其他数据都大(索引默认是降序排列,小→大),所以NULL值总是排在最后。
使用方法:
SQL> select 1 from dual where null=null;
没有查到记录
SQL> select 1 from dual where null='''';
没有查到记录
SQL> select 1 from dual where ''''='''';
没有查到记录
SQL> select 1 from dual where null is null;
1
---------
1
SQL> select 1 from dual where nvl(n ......

ORACLE复习(一)

很久没有用到Oracle了,前些日子单位接了一个Oracle数据库的项目,自然需要复习一下,现将复习过程中的一些要点记录下来,以备查阅。
一、     表列数据类型
1、字符
1)        VARCHAR2(n),n是必须的,用于存储最长为4000个字符的字符串。但它是可变的,只使用所需要的最少字节。
2)       CHAR(n),n是必须的,用于存储固定长度的字符串。如果所插入的值小于CHAR所声明的长度,则右边以空格填充。一般不用该类型
3)       NCHAR(n), NVARCHAR2(n),仅用于存储Unicode字符集
2、数字
1)       NUMBER, NUMBER(a), NUMBER(a, b)
2)       这种类型用于存储数字,不要使用精确的参数来存储未知范围的值。如Create table temp(amout number),则可以在列amout中存储实际上是任意大小的数字。
3)       参数a代表精度,即占位符的总位数,参数b表示刻度,即小数点右边的位数。如Create table temp(age number(3))表示可以存储任意3位的整数;如果要 ......

ORACLE中Like与Instr性能大比拼

t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发
现,like的效率与instr函数差别相当大。下面是一些测试结果:
SQL> set timing on
SQL> select count(*) from t where instr(title,’手册’)>0;
COUNT(*)
———-
65881
Elapsed: 00:00:11.04
SQL> select count(*) from t where title like ‘%手册%’;
COUNT(*)
———-
65881
Elapsed: 00:00:31.47
SQL> select count(*) from t where instr(title,’手册’)=0;
COUNT(*)
———-
11554580
Elapsed: 00:00:11.31
SQL> select count(*) from t where title not like ‘%手册%’;
COUNT(*)
———-
11554580
另外,我在另外一个2亿多的表,使用8个并行,使用like查询很久都不出来结果,但使用instr,4分钟即完成查找,性能是相当的好。这些小技
巧用好,工作效率提高不少。通过上面的测试说明,ORACLE内建的一些函数,是经过相当程度的优化的。
Tags: oracle l ......

一个字符导致oracle安装出现ora 12154

前两天,在客户的虚拟机上安装oracle软件用于部署自己的应用。才装好不久,由于需要配置网络安全,把整个虚拟机都铲掉,克隆了个配置好网络安全的虚拟机给我们使用,只得重装oracle 10g。
当第二次在虚拟机上安装oracle时,数据库名和系统账号的密码都做了改动,结果直接导致在创建oracle实例时弹出ora-12154错误。选择【忽略】按钮并不能绕过这个错误,只有选择【中止】才绕过这个错误,但没有创建数据库实例。于是,在网上搜索这个错误解决办法,搜索结果是绝大部分都是出现在安装完服务端之后出现的。
害怕对后面的部署工作带来麻烦,决定把安装了的卸掉再试图重新安装,甚至把注册表上有关oracle的项都删掉后,重启系统再安装。令人失望的是,这样依然没解决问题。最后,只得通过dbca工具创建数据库实例。令人奇怪的是,这样创建的数据库实例并没产生那个讨厌的ora-12154错误。创建后,用em工具连接数据库没任何问题,但使用sqlplus连接数据库时,ora-12154错误还是跳出来!这次,按着网上搜到的提示,检查listener.ora、sqlnet.ora、tnsnames.ora文件,并没发现什么不一致的地方。搞了一整天,都没办法解决,实在令人头疼。 ......

ORACLE数据字典简介


ORACLE中的数据字典是什么?有什么特点和规律?
  数据字典记录了数据库的系统信息,它是只读表和系统视图的集合。
  数据字典的所有者是SYS用户,数据字典都被存放在SYSTEM表空间,SYS用户的方案下。
  数据字典只允许SELECT操作,其维护和修改任务由数据库自动完成。
当用户执行CREATE、ALTER、DROP操作时,Oracle数据库会在相应数据字典上执行INSERT、UPDATE,
DELETE操作。
 ORACLE中数据字典有三种类型,分别为USER_XXX、ALL_XXX、DBA_XXX,其中USER_XXX表示当前
用户所拥有的对象,ALL_XXX表示当前用户有操作权限的对象,DBA_XXX表示数据库中所有的对象。比
如:采用SCOTT用户登录数据库之后执行下列命令可以看到有四个表:
  SQL> select table_name from user_tables;
 TABLE_NAME
  ------------------------------
DEPT
EMP
BONUS
SALGRADE
执行下列命令时可以看多非常多的表,其中包括SCOTT所拥有的和SCOTT有权限访问的:
SQL> select table_name from all_tables;
执行结果(略)
DBA_XXX表示数据库中所有的对象,包括属于用户的、用户有权限访问的以及系统中的对象。因为DBA_XXX试图可以查看系统 ......
总记录数:3994; 总页数:666; 每页6 条; 首页 上一页 [141] [142] [143] [144] 145 [146] [147] [148] [149] [150]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号