仓酷云 发表于 2015-1-16 22:40:13

MYSQL网页编程之Oracle诊断案例-Sql_trace之二

DBaaS向客户提供了许多与其他云服务相类似的优势:一个灵活的、可扩展的MySQL学习教程、按需服务的平台,它以自助服务和便捷管理为导向,可以对环境中的资源进行调配。oracle
link:

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供应的最为无效的诊断工具之一.




使用它开发程序也是非常简单的。”

因胸联盟 发表于 2015-1-19 21:07:52

光写几个SQL实在叫无知。

老尸 发表于 2015-1-28 10:40:24

语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!

冷月葬花魂 发表于 2015-2-5 14:35:37

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)

谁可相欹 发表于 2015-3-2 23:50:23

微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。

深爱那片海 发表于 2015-3-11 07:37:49

数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。

精灵巫婆 发表于 2015-3-17 23:10:22

SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。

灵魂腐蚀 发表于 2015-3-25 07:21:33

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
页: [1]
查看完整版本: MYSQL网页编程之Oracle诊断案例-Sql_trace之二