oracle频繁新增的表建索引账户频繁被锁,如何定位解决处理问题

很多DBA目前还停留在Oracle 9i或者10g,究其原因有可能是Oracle 11g的价格问题。本文将为大家讲解在Windows 7下安装Oracle 11g,也希望大家能从中看到11g的一些新特点。
前不久卸载掉了自己的Windows Vista系统,装上了Windows7 旗舰版,在装机过程中也遇到了很多问题,有些问题是自己不曾遇到过的,但自己尝试着去解决,一步一步尝试着去努力。自己的不懈努力,也换回了成果。比如在装SQL Server 2005和Oracle 11
  分类:
由于本次的实验我是将上次的虚拟机直接拷贝过来,然后将里面图形化界面安装好了的oracle给删除,再次重新安装,所以这里要修改一些配置。
首先修改的是我们的IP地址
# system-config-network
完成后我们修改一下hosts文件,将里面的ip地址给修改一下
  分类:
Flashback Data Archive(闪回日志归档)其实理解为长时间的保存undo数据,对于某些重要的表可以自定义它的历史记录保存期限,它的的种种行为与undo表空间十分相似,使用的时候也是完全透明的,用户不知道它的查询一致性视图数据是来自undo还是Flashback Data Archive,现来分析它与undo的几点不同:
1.Flashback Data Archive仅记录UPDATE和DELETE语句,不记录INSERT语句。
  分类:
今天在导入一批数据到Oracle时,碰到了这样一个问题:Toad提示要给一个自定义变量AMP赋值,一开始我很纳闷,数据是一系列的Insert语句,怎么会有自定义变量呢?后来搜索了一下关键字AMP发现,原来是因为在插入数据中有一个字段的内容如下:
http://xxx.com/3DX?uid=0676&sid=rt_060908
  分类:
oracle服务器没有建立目标数据库的TNS时,在客户端(有权限的情况下)建立dblink语法如下: 复制代码 代码如下:
  分类:
dbms_metadata.get_ddl()用于获取对象的DDL,其具体用法如下。注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数:
  分类:
事情的起因是,一个应用升级后,某一个操作导致一个表的几个列全部被更新为同一值(忍不住又要唠叨测试的重要性)。这样的错误居然出现在应用代码中,显然是重大的BUG。那个是罪魁祸首的SQL,UPDATE语句,其WHERE条件仅仅只有一个where 1=1。
系统的维护人员称是星期五出的错,发现出错是在星期天,也就是我恢复数据的日期,与声称的出错时间已经隔了将近2天。开始尝试用flashback query恢复数据,报ORA-01555错误,此路不通。维护人员说,星期五之前的RMAN
  分类:
oracle数据库报错ORA-00257: archiver error. Connect internal only, until freed ,如何解决呢?此问题定位在归档日志满了,下面把具体解决办法总结分享给大家。
解决办法:
SQL& select * from V$FLASH_RECOVERY_AREA_USAGE; --查看归档内容使用情况
FILE_TYPE&&&nbsp
  分类:
AWR的数据主要有两部分组成:1)保存在内存中的系统负载和性能统计数据,主要通过v$视图查询 ;2)mmon进程定期以快照(snapshot)的方式将内存中的AWR数据保存到SYSAUX表空间中,主要通过DBA_*视图访问。1. AWR快照的生成默认情况下,每隔一小时自动产生一个快照,保存最近7天的信息,可以通过
  分类:
由于本机环境问题,导致做的xml publisher报表跑不出来,无法显示 XML 页。
使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。
XML 文档只能有一个顶层元素。处理资源 'http://***.***.com:8001/OA_CGI/FNDWRR.exe?temp_id=' 时出错。第 12 行,位置: 2
&ITEM_LIST&
  分类:
Oracle数据库查看一个进程是如何执行相关的实际SQL语句复制代码 代码如下:
  分类:
一、不能导出空表的原因1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
2、设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL&alter system set deferred_segment_creation
  分类:
故障现象 Oracle Database 11g 数据库普通用户登录时提示 ORA-28002: the password will expire within 7 days [11:01:00oracle@dvd db_1]$sqlplus wang/oracle SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 16 11:01:23 2012 Copyright (c) 1
  分类:
1.优化应用程序和业务逻辑,这个是最重要的。 2.数据库设计阶段范式和反范式的灵活应用。一般情况下,对于频繁访问但是不频繁修改的数据,内部设计应当物理不规范化;对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。 3.充分利用内存,优化sga、pga等(11g已经实现了sga+pga自动化,但有的时候仍然需要手动进行调整),适当的将小表keep到cache中。 4.优化sql语句 1)减少对数据库的查询次数,即减少对系统资源的请求,使
  分类:
当两张表进行联结的时候,如果表1中的数据行是否出现在结果集中需要根据表2中出现或不出现至少一个相匹配的数据行来判断,这种情况就会发生半联结;而反联结便是半联结的补集,它们会作为数据库中常见的联结方法如NESTED LOOPS,MERGE SORT JOIN,HASH JOIN的选项出现。
实际上半联结和反联结本身也可以被认同是两种联结方法;在CBO优化模式下,优化器能够根据实际情况灵活的转换执行语句从而实现半联结和反联结方法,毕竟没有什么SQL语法可以显式的调用半联结和反联
  分类:
如果你不小心覆盖了之前的存储过程,那得赶紧闪回,时长越长闪回的可能性越小。原理很简单,存储过程的定义就是数据字典,修改数据字典跟修改普通表的数据没有区别,此时会把修改前的内容放到undo中,我们可以根据这一点来进行闪回,所以我说要尽快,要不然找不回来了。下面我们来做一个实验: 1.在用户TEST下14:31下建立存储过程
  分类:
查看oracle数据库是否为归档模式
SQL& select name,log_mode from V$
NAME LOG_MODE
------------------ ------------------------
TEST NOARCHIVELOG
SQL& archive log list
Database log mode No Archive Mode
  分类:
在DBA的日常工作中,经常遇到为Oracle用户解锁的操作;这篇文章给出在命令行下进行Oracle用户解锁的操作方法,通过几条简单的解锁语句就能完成此项工作。下面是具体的过程:
默认的scott用户是被锁定的,先解锁就能登陆上了。 使用下面的语句解锁scott:
  分类:
oracle trunc()函数是最常用的函数之一,下面就为您介绍oracle trunc()函数的用法,供您参考,希望可以让您对oracle trunc()函数有更深的认识。
1.TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:
TRUNC(date[,fmt])
date一个日期值
  分类:
因为:1)提高性能:尽量把表和索引的表空间存储在不同在磁盘上,把两类不同IO性质的数据分开放,这样可以提高磁盘的IO总体性能;
2)便于管理:试想一下,如果索引的数据文件损坏,只要创建索引即可,不会引起数据丢失的问题。
  分类:
Copyright & 2016 phpStudyoracle 中system用户被锁住了
[问题点数:20分]
本版专家分:0
CSDN今日推荐
本版专家分:1348
本版专家分:14290
2011年7月 Oracle大版内专家分月排行榜第二
2011年6月 Oracle大版内专家分月排行榜第三2011年5月 Oracle大版内专家分月排行榜第三
本版专家分:9992
本版专家分:3243
本版专家分:43
本版专家分:947
本版专家分:636
本版专家分:738
本版专家分:434
本版专家分:244
本版专家分:0
本版专家分:98
本版专家分:0
本版专家分:339
本版专家分:3073
2012年2月 Oracle大版内专家分月排行榜第二
本版专家分:0
本版专家分:55
本版专家分:738
本版专家分:4
本版专家分:20
本版专家分:90
匿名用户不能发表回复!|
其他相关推荐oracle中如何查询表被锁定状态
[问题点数:100分,结帖人xf_piliangliang]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:390
本版专家分:0
本版专家分:29999
2008年8月 总版技术专家分月排行榜第三
2008年10月 Oracle大版内专家分月排行榜第一2008年9月 Oracle大版内专家分月排行榜第一2008年8月 Oracle大版内专家分月排行榜第一
2008年7月 Oracle大版内专家分月排行榜第二
2009年3月 Oracle大版内专家分月排行榜第三
匿名用户不能发表回复!|
其他相关推荐拒绝访问 | www.ggdoc.com | 百度云加速
请打开cookies.
此网站 (www.ggdoc.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(43debe3f-ua98).
重新安装浏览器,或使用别的浏览器&系统性能变慢常规处理诊断及定位处理方法 
一、可能的系统现象:1、业务变慢,尤其是工单相关的业务较慢;2、主机系统资源率较高,数据库中的ACTIVE较多,有全表扫描;3、数据库锁、BUFFER等待等
二、处理步骤和方法:1、对于业务方面,有业务人员进行查询,包括程序升级,批量操作等。2、对于系统方面可以从下面几个方面考虑;& a、主机方面: 确定占用率较高的进程,分析对应的客户端进程的行为(什么机器、什么业务),在
服务器对端分析对应的ORACLE进程的行为(&&& 包括SQL语句、HASH值、调用次数、执行计划、统计值等)& b、数据库方面:查询对应主机进程占用的系统资源,在SQL语句的行为同上;& c、全表扫描,查看执行的语句和对应的业务,并验证相关执行计划是否合适,统计值是否合适;&& 【如果执行计划有问题,此结果可以作为更新统计值的条件】3、查询系统的等待事情和锁对象等;
三、具体可能的语句或工具1、操作系统 使用NMON 、LSOF、glance、top、sar等;&& 在HP主机上使用 glance 、lsof&& 在AIX主机上使用nmon [ nmon-& u -& o& ] \lsof
2、a、查询操作系统进程、DB SID和SQL语句,锁等待的语句select * from v$sql& where address& in& (select sql_address& &&& from v$session& a &&& where& paddr In &&&&&& (& select& addr& from v$process where spid&&&&&&&& in ( 8642776)&&&&&& )&&&&&& )
select * from v$process where addr in (select paddr from v$session where& sid in (select
session_id from v$locked_object where object_id in (select object_id from v$locked_object where oracle_username = 'SDQD')))
select * from dba_objects& where object_id in(select object_id from v$locked_object)
select * from v$process where addr in (select paddr from v$session where& sid in (select
session_id from v$locked_object) )
select * from v$session where paddr in (select addr& from v$process where spid in ('14714'
,'14693','9807','29105' ) ) select spid& from v$process& where addr in (select paddr from v$session t where
t.SID='21')
b、统计值的查询、分析和组状图select *& from& dba_select a.owner,a.table_name ,num_rows,blocks,last_analyzed& from dba_tables a where
a.sample_size & 1 & 对比上面的抽样值和实际值 进行比较&& --非分区表&& select& a.owner&& ,segment_name, a.bytes& size11, a.blocks ,b.blocks , a.blocks /
b.blocks&&&& from dba_segments a& , dba_tables b && where a.owner = b.owner and a.segment_name =b.table_name and b.sample_size & 1 and
b.blocks & 0 and a.partition_name& is null& &&& && --分区表select& a.owner&& ,segment_name,a.partition_name , a.bytes& , a.blocks ,b.blocks ,
a.blocks / b.blocks&&&& from dba_segments a& , dba_tab_partitions& b && where a.owner = b.table_owner& and a.segment_name =b.table_name and
b.partition_name=a.partition_name& and b.sample_size & 1 and b.blocks & 0 and
a.partition_name& is not&& null&
&& 对于结果 偏离1较多的&& 1或者 &&1 ,结合实际空间,可以进行快速的统计值更新。&& 【此结果可以作为更新统计值的条件】
对于oracle 10G还需要考虑组状图 可以使用下列语句直接收集& 详细参考柱状图的统计方式。大致的语句可以如下:&& 在看Cost-Based Oracle Fundamentals一书时, 使用了如下的sql来模拟直方图的收集:
SQL&&Name&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Null?&&& Type&----------------------------------------- -------- ----------------------------&PROD_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL NUMBER&CUST_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL NUMBER&TIME_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL DATE&CHANNEL_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL NUMBER&PROMO_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL NUMBER&QUANTITY_SOLD&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL NUMBER(10,2)&AMOUNT_SOLD&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL NUMBER(10,2)
&SQL&&& select&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & 2&&&&& tenth&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& tenth,&&&&&&&& & 3&&&&& min(PROD_ID)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& low_val,&&&&& & 4&&&&& max(PROD_ID)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& high_val,&&&& & 5&&&&& max(PROD_ID) - min(PROD_ID)&&&&&&&&&&&&&&&&&&&&&& width,&&&&&& & 6&&&&& round(100000 / (max(PROD_ID) - min(PROD_ID)),2)&& height&&&&&& & 7&& from (&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & 8&&&&& select&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & 9&&&&&&&&&&&&& PROD_ID,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &10&&&&&&&&&&&&& ntile(10) over (order by PROD_ID) tenth&&&&&&&&&&&&&&& &11&&&&& from SALES&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &12&& )&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &13&& group by tenth&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &14&& order by tenth&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &15&& ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&& TENTH&&& LOW_VAL&& HIGH_VAL&&&&& WIDTH&&&& HEIGHT---------- ---------- ---------- ---------- ----------&&&&&&&& 1&&&&&&&& 13&&&&&&&& 24&&&&&&&& 11&&& 9090.91&&&&&&&& 2&&&&&&&& 24&&&&&&&& 30&&&&&&&&& 6&& 16666.67&&&&&&&& 3&&&&&&&& 30&&&&&&&& 34&&&&&&&&& 4&&&&& 25000&&&&&&&& 4&&&&&&&& 34&&&&&&&& 40&&&&&&&&& 6&& 16666.67&&&&&&&& 5&&&&&&&& 40&&&&&&&& 48&&&&&&&&& 8&&&&& 12500&&&&&&&& 6&&&&&&&& 48&&&&&&& 117&&&&&&&& 69&&& 1449.28&&&&&&&& 7&&&&&&& 117&&&&&&& 124&&&&&&&&& 7&& 14285.71&&&&&&&& 8&&&&&&& 124&&&&&&& 130&&&&&&&&& 6&& 16666.67&&&&&&&& 9&&&&&&& 130&&&&&&& 138&&&&&&&&& 8&&&&& 12500&&&&&&& 10&&&&&&& 138&&&&&&& 148&&&&&&&& 10&&&&& 10000
10 rows selected.
为了验证结果是否与直方图统计信息一致,对该表进行统计信息收集,并收集直方图信息。
---快速更新统计值SQL&alter session set& db_file_multiblock_read_count=128; --对表SQL& exec dbms_stats.gather_table_stats('UCR_CRM1','TF_B_TRADE_BATDEAL', degree =&
6,estimate_percent =& 20) ;--对一个分区SQL&exec dbms_stats.gather_table_stats(ownname =& 'ownname',tabname =& 'tabname',partname
=& 'partname',estimate_percent =& 20,degree =& 6)
c、执行计划的验证
&& 最简单的方式:在session 中使用SQL&&& 更详细的方法见后面的方法。
&&&& ORACLE EXPLAIN PLAN的总结 &在ORACLE数据库中,需要对SQL语句进行优化的话需要知道其执行计划,从而针对性的进行调整.ORACLE
的执行计划的获得有几种方法,下面就来总结下
1、EXPLAIN的使用
&&& Oracle RDBMS执行每一条SQL语句,都必须经过Oracle优化器的评估。所以,了解优化器是如何选
择(搜索)路径以及索引是如何被使用的,对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查
出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为Access Path)。从而使我们选
择最优的查询方式达到最大的优化效果。1.1 、安 装&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&要使用EXPLAIN首先要执行相应的脚本,创建出Explain_plan表。
具体脚本执行如下:
&& $ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX)& 该脚本后会生成一个表这个程序会创建一个名
为plan_table的表。
1.2 、使用常规使用语法:explain PLAN [ SET STATEMENT_ID [=] & string literal & ] [ INTO & table_name & ]FOR & sql_statement &
其中:STATEMENT_ID:是一个唯一的字符串,把当前执行计划与存储在同一PLAN中的其它执行计划区别开来。TABLE_NAME:是plan表名,它结构如前所示,你可以任意设定这个名称。SQL_STATEMENT:是真正的SQL语句。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
比如:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
SQL&explain plan set statement_id='T_TEST' for select * from t_&&&&&&&&&&&&
执行下面语句可以查询到执行计划
SQL&SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID& 2& FROM PLAN_TABLE& a& 3& WHERE STATEMENT_ID='T_TEST'& 4& ORDER BY Id;也可以用这句话 select * from table(dbms_xplan.display); 可以把所有PLAN_TABLE里的数据罗列出
2 、AUTOTRACE的使用方法
用sys用户运行脚本ultxplan.sql
建立这个表的脚本是:(UNIX:$ORACLE_HOME/rdbms/admin, Windows:%ORACLE_HOME%\rdbms\admin)
ultxplan.sql。
SQL& @C:\oracle\ora92\rdbms\admin\utlxplan.
SQL& create public synonym plan_table for plan_--建立同义词
SQL& grant all on plan_--授权所有用户
要在数据库中建立一个角色plustrace,用sys用户运行脚本plustrce.sql来创建这个角色,这个脚本在
目录(UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%\sqlplus\admin)中;
SQL& @C:\oracle\ora92\sqlplus\admin\plustrce.
然后将角色plustrace授予需要autotrace的用户;
经过以上步骤的设置,就可以在sql*plus中使用autotrace了
使用起来非常方便,只要使用一条命令就可以了
SQL&SET AUTOTRACE ON;
*autotrace功能只能在SQL*PLUS里使用
& 其他一些使用方法:
2.2.1、在SQLPLUS中得到语句总的执行时间
2.2.2、只显示执行计划--(会同时执行语句得到结果)
SQL&set autotrace on explain
sql& select count(*)
-------------
Execution plan
----------------------------
0&&&&&&&&&&& select statement ptimitzer=choose (cost=3 card=1)
1&&&& 0&&&&&&& sort(aggregate)
2&&&& 1&&&&&&&&&& partition range(all)
3&&&& 2&&&&&&&&&&&& table access (full) of 't_test'& (cost=3 card=900)
2.2.3、只显示统计信息---(会同时执行语句得到结果)
SQL&set& aut
(备注:对于SYS用户,统计信息将会是0)
2.2.4、显示执行计划,屏蔽执行结果--(但语句实质还执行的&
SQL& set au&&& (备注:同SET AUTOTRACE ON; 只不过不显示结果,显示计划和统计)
2.2.5、仅仅显示执行计划,屏蔽其他一切结果--(语句还是执行了)SQL&set autotrace 对于仅仅查看大表的Explain Plan非常管用。2.2.6、关闭SQL&总结:SQLPLUS 下的自动显示功能,在看执行计划中其语句还是会被执行的。尤其在执行
UPDATE/DELETE语句时请千万注意,ORACLE是先执行脚本同时显示执行计划的,即使使用set autotrace
这个时候推荐使用EXPLAIN PLAN FOR来看或者PL/SQL等第三方工具3、第三方工具来看执行计划&& 如果在PL/SQL中使用选择要查询语句显示执行计划,则只需要SQL WINDOWS 窗口里面输入要查询的
SQL语句,然后选择按键F5或者在菜单TOOLS?D?D&Explain Plan 菜单按键就可以在执行计划窗口查看该
语句的执行计划。在TOAD语句中在执行当前的SQL窗口中选择下方的Explain PlanTAB页即可以查看要执行语句的执行计划
信息。 4、限制
explain真正的唯一的限制是用户不能去解释其它用户的表,视图,索引或其它类型,用户必须是所有
被解释事物的所有者,如果不是所有者而只有select权限,explain会返回一个错误。
&&&回复&&&:
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:10
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员

我要回帖

更多关于 oracle数据库基本语句 的文章

 

随机推荐