新网站 www.elinkhealth.com
花了两天的时间终于申请了空间,并将初步的网站建立起来了,一个关于health类目的网站,也增加了adsense。不错,继续加油,我的http://www.elinkhealth.com/[@more@]
temp
temp[@more@]Data link通过window的客户端创建。在本地客户端的tnsname.ora文件中,存在onidai1以及onidau1的定义。但是通过sql*plus登录数据库,创建完成db link之后,发现不能通过其来访问远程数据库,报ora-12154错误。 原来,在本地数据库的tnsname.ora中没有定义远程数据库条目(即使在本地客户端定义了也没有用)。解决方法:将远程数据库服务器上的tns字符串添加到创建于语句中。或者,将远程数据库的tns定义添加到本地数据库的tnsname.ora文件中。create database link "I1_TO_U1.US.ORACLE.COM"connect to APPSidentif
执行计划中Row 数量为0
执行计划中数量为0?[@more@]从Metalink中找到答案如果游标没有关闭,那么通过TKPROF生成的输出将不会包含精确的执行计划,在原始的trace文件中要么没有STAT行,或则行数量遗失。当然可以通过EXPLAIN选项来产生执行计划,但这个时候产生的执行计划不一定是正确的。如果游标关闭,STAT行写入原始的trace文件。 解决方法:可以通过执行其他无关的SQL来关闭游标或通过dbms_session.reset_package过程来完成。 验证方法:对比两种不同方式,检查在游标关闭和非关闭两种情况下,是否生成了对应的执行计划。 验证过程: 1. 创建一个过程,在过程中
对大表的分析
怎样对数据库中的大表进行分析[@more@]1)分析前备份统计信息: dbms_stats.EXPORT_TABLE_STATS 2)察看是否统计:user_table中的last_anaylyzed字段是最后分析的字段。user_index表中也存在对应字段。3)对于数据量大的表要抽样分析,用dbms_stats分析对表的影响比analyze 更小一些。4)对于数据变化比较频繁的表,需要定时分析,否则会产生性能问题。参考:http://www.itpub.net/787943,1.html
察看当前Session登录的数据库
察看当前Session登录的数据库[@more@]如果可以访问V$表,可以通过select instance_name, version from v$instance; 如果没有相关权限,也可以通过SYS_CONTEXT得到Session登录的数据库。select SYS_CONTEXT('USERENV' ,'DB_NAME') db_name from dual; 通过sys_context( namespace, parameter, [ length ] ),可以获取Oracle相关的环境信息。如果需要得到当前session的Oracle相关信息,在namespace的参数值为'USERENV'。还可以通过userenv函数来获取当前session的Oracle相关信息,这是一个遗留函数,Oracle推荐使用sys_context来获取。DBMS_
理解V$OPEN_CURSOR, V$SESSION_CACHED_CURSOR
这两个概念很容易混淆。[@more@]概念: OPEN_CURSOR,定义每个Session最大能够打开的游标数量。在init.ora文件中定义,可以通过select * from v$parameter where name = 'open_cursors'查询。 V$OPEN_CURSOR,当前Session缓存的游标,而不是曾经打开的游标。 V$SESSION_CACHED_CURSOR,当前Session已经关闭并被缓存的游标。 V$OPEN_CURSOR中显示的当前Session游标缓存中游标,如果要精确查询当前Session打开的游标总数,需要从V$ SESSTAT中查询。 select a.value, s.username, s.sid, s.serial# from v$sesstat a, v$statname b, v$sessio
通过dbms_xplan.display察看执行计划
Oracle9i新引入的包dbms_xplan[@more@]Oracle9i新引入的包dbms_xplan。函数display有三个参数:Table_name——执行计划所存放的表,默认为PLAN_TABLE;STATEMENT_ID——PLAN_TABLE表中的字段;FORMAT——显示格式。 SQL> explain plan for 2 select 3 tA.n2, 4 tB.n2 5 from 6 t1 tA, 7 t1 tB 8 where 9 tA.n1 = 15 10 and tB.n1 = tA.n1 11 ; Explained. SQL> select * from table(dbms_xplan.display); 优点:适合于bind var的SQL。可以直接执行,能够根据相关信息排序,显示界面友好。 只能用作分析,和实际运行的计划还是有差别
定义SQL*PLUS类型的可执行
在定义可执行的时候,其中有一种类型为SQL*PLUS。[@more@]在定义可执行的时候,其中有一种类型为SQL*PLUS。虽然可能使用不频繁,但是这种类型在系统中的确存在。可以通过如下SQL查询当前系统中,各种类型可执行的数量。SELECT COUNT (*), meaningFROM fnd_executables_vl fev, fnd_lookups flWHERE fev.execution_method_code = fl.lookup_code(+)AND fl.lookup_type = 'CP_EXECUTION_METHOD_CODE'GROUP BY meaning;通过输出结果可以发现,ERP中最多的类型为PL/SQL Stored Procedure,有2000多个,SQL*Plus只有300多个,Java类型的70个。记