数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Oracle常用技巧和脚本

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

2005-01-05 16:42  作者:  来源:CSDN

【简 介】
  ORACLE的显式参数,除了在INIT.ORA文件中定义的外,在svrmgrl中用"show parameter *",可以显示。但ORACLE还有一些参数是以“_”,开头的。如我们非常熟悉的“_offline_rollback_segments”等。

1. 如何查看ORACLE的隐含参数?   

  ORACLE的显式参数,除了在INIT.ORA文件中定义的外,在svrmgrl中用"show parameter *",可以显示。但ORACLE还有一些参数是以“_”,开头的。如我们非常熟悉的“_offline_rollback_segments”等。

  这些参数可在sys.x$ksppi表中查出。   

  语句:“select ksppinm from x$ksppi where substr(ksppinm,1,1)='_'; ”   

  2. 如何查看安装了哪些ORACLE组件?   

  进入${ORACLE_HOME}/orainst/,运行./inspdver,显示安装组件和版本号。

  3. 如何查看ORACLE所占用共享内存的大小?

  可用UNIX命令“ipcs”查看共享内存的起始地址、信号量、消息队列。   

  在svrmgrl下,用“oradebug ipc”,可看出ORACLE占用共享内存的分段和大小。

  example:   

  SVRMGR> oradebug ipc

  -------------- Shared memory --------------   

  Seg Id Address Size

  1153 7fe000 784

  1154 800000 419430400

  1155 19800000 67108864   

  4. 如何查看当前SQL*PLUS用户的sid和serial#?   

  在SQL*PLUS下,运行:   

  “select sid, serial#, status from v$session   

  where audsid=userenv('sessionid');”   

  5. 如何查看当前数据库的字符集?   

  在SQL*PLUS下,运行:

  “select userenv('language') from dual;”   

  或:   

  “select userenv('lang') from dual;”   

  6. 如何查看数据库中某用户,正在运行什么SQL语句?   

  根据MACHINE、USERNAME或SID、SERIAL#,连接表V$SESSION和V$SQLTEXT,可查出。   

  SQL*PLUS语句:

  “SELECT SQL_TEXT FROM V$SQL_TEXT T, V$SESSION S WHERE T.ADDRESS=S.SQL_ADDRESS   

  AND T.HASH_VALUE=S.SQL_HASH_VALUE  

  AND S.MACHINE='XXXXX' OR USERNAME='XXXXX' -- 查看某主机名,或用户名   

  /”   

  7. 如何删除表中的重复记录?   

  例句:   

  DELETE

  FROM table_name a

  WHERE rowid > ( SELECT min(rowid)

  FROM table_name b

  WHERE b.pk_column_1 = a.pk_column_1

  and b.pk_column_2 = a.pk_column_2 );   

  8. 手工临时强制改变服务器字符集   

  以sys或system登录系统,sql*plus运行:“create database character set us7ascii;".

  有以下错误提示:

  * create database character set US7ASCII

  ERROR at line 1:

  ORA-01031: insufficient privileges

  实际上,看v$nls_parameters,字符集已更改成功。但重启数据库后,数据库字符集又变回原来的了。

  该命令可用于临时的不同字符集服务器之间数据倒换之用。

  9. 怎样查询每个instance分配的PCM锁的数目   

  用以下命令:   

  select count(*) "Number of hashed PCM locks" from v$lock_element where bitand(flags,4)<>0   

  /

  select count(*) "Number of fine grain PCM locks" from v$lock_element

  where bitand(flags,4)=0   

  /   

  10. 怎么判断当前正在使用何种SQL优化方式?   

  用explain plan产生EXPLAIN PLAN,检查PLAN_TABLE中ID=0的POSITION列的值。

  e.g.

  select decode(nvl(position,-1),-1,'RBO',1,'CBO') from plan_table where id=0

  /   

  11. 做EXPORT时,能否将DUMP文件分成多个?   

  ORACLE8I中EXP增加了一个参数FILESIZE,可将一个文件分成多个:   

  EXP SCOTT/TIGER FILE=(ORDER_1.DMP,ORDER_2.DMP,ORDER_3.DMP) FILESIZE=1G TABLES=ORDER;   

  其他版本的ORACLE在UNIX下可利用管道和split分割:

  mknod pipe p

  split -b 2048m pipe order & #将文件分割成,每个2GB大小的,以order为前缀的文件:   

  #orderaa,orderab,orderac,... 并将该进程放在后台。




相关文章

相关软件