1、查看ORACLE中正在运行的存储过程
SQL> select owner,name from v$db_object_cache where type like '%PROCE%' and locks >0 and pins >0;
OWNER NAME
-------- ------
SYS FULL_SCAN_BERTHDATAENTITY
SQL> select * from v$access o where o.OBJECT like 'FULL_SCAN_BERTHDATAENTITY%';
SID OWNER OBJECT TYPE
---------- ------- -------------------------- --------
1047 SYS FULL_SCAN_BERTHDATAENTITY PROCEDURE
SQL> select * from v$session a WHERE A.SID=1047
2、停止正在运行的存储过程
可以查看正在运行的SESSION,把相应存储过程的SESSION给KILL掉即可!存储过程中的SQL都是可以跟踪到的(SESSION)
select * from v$access o where o.OBJECT like 'FULL_SCAN_BERTHDATAENTITY%'
select * from v$session a WHERE A.SID=sid
alter system kill session 'sid,serial#'
3、动态性能表--V$DB_OBJECT_CACHE
本视图提供对象在library cache(shared pool)中对象统计,提供比v$librarycache更多的细节,并且常用于找出shared pool中的活动对象。
v$db_object_cache中的常用列:
OWNER:对象拥有者
NAME:对象名称
TYPE:对象类型(如,sequence,procedure,function,package,package body,trigger)
KEPT:告知是否对象常驻shared pool(yes/no),有赖于这个对象是否已经利用PL/SQL过程DBMS_SHARED_POOL.KEEP“保持”(永久固定在内存中)
SHARABLE_MEM:共享内存占用
PINS:当前执行对象的session数
LOCKS:当前锁定对象的session数
瞬间状态列:
下列列保持对象自初次加载起的统计信息:
LOADS:对象被加载次数。
示例:
1.shared pool执行以及内存使用总计
下列查询显示出shared pool内存对不同类别的对象
同时也显示是否有对象通过DBMS_SHARED_POOL.KEEP()过程常驻shared pool。
SELECT type, kept, COUNT(*), SUM(sharable_mem)
FROM V$DB_OBJECT_CACHE
GROUP BY type, kept;
2.通过载入次数找出对象
SELECT owner, name sharable_mem, kept, loads
FROM V$DB_OBJECT_CACHE
WHERE loads > 1 ORDER BY loads DESC;
3.找出使用的内存超过10M并且不在常驻内存的对象。
SELECT owner, name, sharable_mem, kept
FROM V$DB_OBJECT_CACHE
WHERE sharable_mem > 102400 AND kept = 'NO'
ORDER BY sharable_mem DESC;
相关推荐
1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2. 经常会遇到复杂的业务逻辑和对数据库的...
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。SQL Server 2000 不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程。 存储过程的概念
(1)存储过程在服务器端运行,执行速度快。 (2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。 (3)确保...
存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的...
存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的...
* 再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。 由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。 * ...
也可以创建在 Microsoft SQL Server启动时自动运行的存储过程。 语法 CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ ...
第四章 存储过程运行环境 36 4.1 存储过程以及PL/SQL执行环境 36 4.1.1 SQL*PLUS环境 36 4.1.2 Pro*c预编译环境 37 4.2 存储过程调试方法 38 4.2.1 SQL*PLUS环境中显示错误 38 4.2.2 插入测试表调试存储过程 38 ...
(1)存储过程在服务器端运行,执行速度快。 (2)存储过程执行一次后,就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。 (3)使用存储过程可以...
运行结果运行结果运行结果
将该文档内容粘贴到查询窗口,修改第一行:use [你的存储过程所在的库库名],为你的实际库名,然后运行全部代码;执行完毕后将会创建sp_decrypt存储过程。最后输入:sp_decrypt [你要解密的存储过程名称],运行即可...
2.3.3 在Enterprise Manager中编辑存储过程 2.3.4 在Query Analyzer中编辑存储过程 2.3.5 语法错误 2.3.6 Create Stored Procedure Wizar 2.4 小结 2.5 练习 第3章 存储过程设计概念 3.1 存储过程的结构 3.1.1 组成 ...
在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。就本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行...
DB2工具比较少,资料也很少,由于开发过程中用到,也试用了很多工具,开始使用dbeaver.exe工具,用于查询更新数据挺好,但是不能导出创建脚本语句,会有缺失,也不能运行存储过程;最后发现SqlDbxPersonal挺好用,...
创建无参存储过程、有参存储过程、IF-ELSE存储过程、WHILE循环存储过程、CASE-WHEN条件控制存储过程、REPEAT UNTIL循环存储过程、LOOP循环存储过程。 适合人群:MySQL初学者或者想学习存储过程的人员。 能学到什么:...
Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由SQL语句和流程控制语句组成。它的功能包括:接受参数;调用另一过程;返回一个状态值给调用过程或批处理,指示调用成功或失败;返回...
Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由SQL语句和流程控制语句组成。它的功能包括:接受参数;调用另一过程;返回一个状态值给调用过程或批处理,指示调用成功或失败;返回...
此工具可以查看数据库加密的存储过程,视图等加密后的T-SQL语句。此工具需配合SQL2000运行,没有装SQL2000工具无效,Win7+SQL2000 完美运行