MYSQL网页编程之Oracle诊断案例-Sql_trace之二
DBaaS向客户提供了许多与其他云服务相类似的优势:一个灵活的、可扩展的MySQL学习教程、按需服务的平台,它以自助服务和便捷管理为导向,可以对环境中的资源进行调配。oraclelink:
http://www.eygle.com/case/sql_trace_2.htm
成绩申明:
良多时分
在我们举行数据库操纵时
好比dropuser,droptable等,常常会碰到如许的毛病
ORA-00604:erroroccurredatrecursiveSQLlevel1.
如许的提醒,良多时分是没有涓滴用途的.
本案例就这一类成绩供应一个思绪及办法供人人参考.
1.dropuser呈现成绩
报出以下毛病前进出
ORA-00604:erroroccurredatrecursiveSQLlevel1
ORA-00942:tableorviewdoesnotexist.
关于recursiveSQL毛病
我们有需要做个复杂申明.
我们晓得,当我们收回一条复杂的命令今后
Oracle数据库要在背景剖析这条命令,并转换为Oracle数据库的一系列背景操纵.
这些背景操纵统称为递回sql
好比createtable如许一条复杂的DDL命令
Oracle数据库在背景,实践上要把这个命令转换为
关于obj$,tab$,col$等底层表的拔出操纵.
Oracle所作的事情大概比我们偶然候想的要庞大的多.
2.跟踪成绩
我们晓得Oracle供应sql_trace的功效
能够用于跟踪Oracle数据库的背景递回操纵.
经由过程跟踪文件,我们能够找到成绩的地点
以下是格局化(tkprof)后的输入:
********************************************************************************
Thefollowingstatementencounteredaerrorduringparse:
DELETEFROMSDO_GEOM_METADATA_TABLEWHERESDO_OWNER=WAPCOMM
Errorencountered:ORA-00942
********************************************************************************
Oracle把毛病信息起首出现出来
我们看到ORA-00942毛病是因为SDO_GEOM_METADATA_TABLE表/视图不存在而至
成绩由此能够定位
关于这一类的毛病,定位成绩今后办理的办法就要根据详细成绩缘故原由而定了。
3.成绩定位
关于本案例,经由过程Metalink取得以下注释:
ProblemDescription
-------------------
TheOracleSpatialOptionhasbeeninstalledandyouareencountering
thefollowingerrorswhiletryingtodropauser,whohasnospatialtables,
connectedasSYSTEM:
ERRORatline1:
ORA-00604:erroroccurredatrecursiveSQLlevel1
ORA-00942:tableorviewdoesnotexist
ORA-06512:atline7
A942errortraceshowsthefailingSQLstatementas:
DELETEFROMSDO_GEOM_METADATA_TABLEWHERESDO_OWNER=<user>
SolutionDescription
--------------------
(1)CreateasynonymforSDO_GEOM_METADATA_TABLEunderSYSTEMwhichpointsto
MDSYS.SDO_GEOM_METADATA_TABLE.
关于本例,为MDSYS.SDO_GEOM_METADATA_TABLE创立一个同义词便可办理.
是绝对复杂的情形.
(2)NowtheusercanbedroppedconnectedasSYSTEM.
RelatedDocuments
-----------------
<Note.159776.1>ORA-604andORA-942ReportedDuringDROPUSERCASCA
4.实践处置
MDSYS.SDO_GEOM_METADATA_TABLE为Spatial工具
假如未利用Spatial选项,能够删除
SQL>connect/assysdba
Connected.
SQL>select*fromdba_sdo_geom_metadataorderbyowner;
select*fromdba_sdo_geom_metadataorderbyowner
*
ERRORatline1:
ORA-00942:tableorviewdoesnotexist
ORA-04063:view"MDSYS.DBA_SDO_GEOM_METADATA"haserrors
SQL>selectobject_namefromdba_objectswhereobject_namelike%SDO%;
OBJECT_NAME
--------------------------------------------------------------------------------
ALL_SDO_GEOM_METADATA
ALL_SDO_INDEX_INFO
ALL_SDO_INDEX_METADATA
DBA_SDO_GEOM_METADATA
DBA_SDO_INDEX_INFO
DBA_SDO_INDEX_METADATA
....
DBA_SDO_GEOM_METADATA
DBA_SDO_INDEX_INFO
...
SDO_WITHIN_DISTANCE
USER_SDO_GEOM_METADATA
USER_SDO_INDEX_INFO
USER_SDO_INDEX_METADATA
88rowsselected.
SQL>dropuserMDSYScascade;
Userdropped.
SQL>selectowner,type_namefromdba_typeswheretype_namelikeSDO%;
norowsselected
SQL>
SQL>altersessionsetsql_trace=true;
Sessionaltered.
SQL>dropuserwapcomm;
Userdropped.
SQL>altersessionsetsql_trace=false;
Sessionaltered.
SQL>exit
DisconnectedfromOracle8iEnterpriseEditionRelease8.1.7.4.0-64bitProduction
WiththePartitioningoption
JServerRelease8.1.7.4.0-64bitProduction
这时候用户得以顺遂drop
5.一点总结
利用sql_trace能够跟踪数据库的良多背景操纵
有益于我们发明成绩的地点
良多时分,我们想要研讨Oracle的外部举动或背景操纵
也能够经由过程sql_trace跟踪
sql_trace/10046是Oracle供应的最为无效的诊断工具之一.
使用它开发程序也是非常简单的。” 光写几个SQL实在叫无知。 语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的! SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。) 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。 作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
页:
[1]