SQL 里知道ant 编译部分代码码,想知道这ant 编译部分代码码是在哪个存储过程里的,如何找到这个存储过程。求大神解救

在oracle9i中如何编写sql或者存储过程来知道执行sql或者函数花费的时间? - ITeye问答
在oracle9i中如何编写sql或者存储过程来知道执行sql或者函数花费的时间?
比如:我有两种sql的写法
引用
SELECT temp.name
SELECT count(DISTINCT tempone.goodsname) as nums,
tempone.name
FROM tempone
GROUP BY tempone.name
WHERE temp.nums & 1
select t1.name from tempone t1,tempone t2 where t1.name = t2.name and t1.goodsname != t2.goodsname group by t1.
我想通过一定的方式 执行如上的两种sql语句来比较执行效益.我已经用存储过程执行了插入了20w条记录。
现在就要问各位有什么方式可以来比较其执行效益的。
而且执行先前的sql后会有数据缓存,对后面的操作时间也会有影响,我该怎么办呢??
有个经验的同学给个好的解决方案,没有说下解决这个问题的思路也可以
先谢谢各位了...问题补充:只有依靠工具了吗》pl/sql不能像java一样可以来通过执行前的系统时间减去执行完成的时间得到整个运行时间吗? 或者其他别的方法?问题补充:谢谢你的 回答
可以看下这个帖子 http://www.iteye.com/topic/289339
方法二 就是我要问的~ 但方法还没完善~
我希望能有个函数可以输出执行SqL消耗的时间
采纳的答案
1.可以用很多工具查看explain plan, 比如楼上说的。
2. 通过PL/SQL查看执行计划:
方法一. Set AutoT
&&&&&& 然后当执行你的sql语句的时候,执行计划自动显示出来。
&&&&&& 不想看执行计划了,set autoT
方法二.执行语句: explain plan for [你的sql语句]
&& 比如: explain plan for select * from table1
&& 然后 执行:select * from table(DBMS_XPLAN.DISPLAY)就可以看到它的执行计划了。
方法三: 类似方法二,前一句sql不变,第二句改为下面sql同样可以显示执行计划(原理一样):
&&&& select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
查看执行时间:
这有什么不可以的,你直接使用sysdate获取当前日期,然后可以用变量保存,使用DBMS_OUT.put_line输出到控制台,不过似乎只能精确到秒。
1 正确的做法是:找一个恰当的工具,例如toad, sql-dev或者9i的client,分析两个sql的执行计划。
2 上面的语句,肯定1要好于2。另外最好使用having子句
SELECT count(DISTINCT tempone.goodsname) as nums,
tempone.name
FROM tempone
GROUP BY tempone.name
having count(DISTINCT tempone.goodsname) & 1
已解决问题
未解决问题→ sql存储过程,如何使用select调用
&&共有<b style="color:#ff人关注过本帖主题:sql存储过程,如何使用select调用The following error occurred:
The requested URL was not found on this server.
Please check the URL or contact the webmaster.sqlServer建立存储过程(图文并茂教你)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
sqlServer建立存储过程(图文并茂教你)
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢SQLSERVER如何知道存储过程执行的信息【sqlserver吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:23,063贴子:
SQLSERVER如何知道存储过程执行的信息收藏
很多DBA都希望能够得到某个存储过程的执行信息,比如:1)
执行了多少次2)
执行的执行计划如何3)
执行的平均读写如何4)
执行平均需要多少时间 等等.
SQL server 2008 提供了一个这样的DMV,使得我们比较容易就得到上面的信息。这个DMV是sys.dm_exec_procedure_stats,它输出了下面的信息(部分截图,具体的请参考联机丛书):列名 数据类型 说明 database_id int 存储过程所在的数据库 ID。 object_id int 存储过程的对象标识号。 cached_time datetime 存储过程添加到缓存的时间。 cached_time datetime 存储过程添加到缓存的时间。 last_execution_time datetime 上次执行存储过程的时间。 execution_count bigint 存储过程自上次编译以来所执行的次数。 total_worker_time bigint 此存储过程自编译以来执行所用的 CPU 时间总量(微秒)。 last_worker_time bigint 上次执行存储过程所用的 CPU 时间(微秒)。 total_physical_reads bigint 此存储过程自编译后在执行期间所执行的物理读取总次数。 last_physical_reads bigint 上次执行存储过程时所执行的物理读取次数。 min_physical_reads bigint 该存储过程在单次执行期间所执行的最少物理读取次数。 max_physical_reads bigint 该存储过程在单次执行期间所执行的最大物理读取次数。 total_logical_writes bigint 此存储过程自编译后在执行期间所执行的逻辑写入总次数。 last_logical_writes bigint 上次执行存储过程时所执行的逻辑写入次数。 min_logical_writes bigint 该存储过程在单次执行期间所执行的最少逻辑写入次数。 max_logical_writes bigint 该存储过程在单次执行期间所执行的最大逻辑写入次数。 total_logical_reads bigint 此存储过程自编译后在执行期间所执行的逻辑读取总次数。 last_logical_reads bigint 上次执行存储过程时所执行的逻辑读取次数。 total_elapsed_time bigint 完成此存储过程的执行所用的总时间(微秒)。 last_elapsed_time bigint 最近完成此存储过程的执行所用的时间(微秒)。 可以通过下面的语句,得到按照执行时间排序的前10 的存储过程的执行信息:SELECT TOP 10 a.object_id, a.database_id, OBJECT_NAME(object_id, database_id) &#39;proc name&#39;,a.cached_time, a.last_execution_time, a.total_elapsed_time, a.total_elapsed_time/a.execution_count AS [avg_elapsed_time],a.execution_count,a.total_physical_reads/a.execution_count avg_physical_reads,a.total_logical_writes,a.total_logical_writes/ a.execution_count
avg_logical_reads,a.last_elapsed_time,a.total_elapsed_time / a.execution_count
avg_elapsed_time,b.text,c.query_planFROM sys.dm_exec_procedure_stats AS aCROSS APPLY sys.dm_exec_sql_text(a.sql_handle)
bCROSS APPLY sys.dm_exec_query_plan(a.plan_handle) cORDER BY [total_worker_time] DESC;GO
登录百度帐号推荐应用

我要回帖

更多关于 svn提交部分代码 的文章

 

随机推荐