10 2011 档案
摘要:[INS-20802] Oracle Net Configuration Assistant failed。在安装Oracle 11g R2时出现了该错误提示。以前安装的时候没有碰到过类似的错误。原来是64bit和32bit系统兼容性的问题。如果基于64bit硬件安装32bit 的Linux 和32bit的Oracle 11g,则需要安装patch 8670579。下面给出patch的安装过程。一、错误提示 [INS-20802] Oracle Net Configuration Assistant failed . Cause -- The plug-in failed in its pe.
阅读全文
摘要:编译无效对象是DBA与数据库开发人员常见的工作之一。对于编译过程中的错误该如何去捕获,下面给出两种捕获错误的方法。一、当前数据库版本信息及无效对象 1、查看当前数据库版本 SQL> select * from v$version; BANNER ------------...
阅读全文
摘要:在图片右侧显示局部放大的图 演示地址:http://www.corange.cn/demo/3792/index.html <script type="text/javascript" src="jquery00.js" charset="utf-8"></script> <link href="jquery00.css" type="text/css" rel="stylesheet" /> <script type="t
阅读全文
摘要:绑定变量是Oracle解决硬解析的首要利器,能解决OLTP系统中library cache的过度耗用以提高性能。然刀子磨的太快,使起来锋利,却容易折断。凡事皆有利弊二性,因地制宜,因时制宜,全在如何权衡而已。本文讲述了绑定变量的使用方法,以及绑定变量的优缺点、使用场合。一、绑定变量 提到绑定变量,就不得不了解硬解析与软解析。硬解析简言之即一条SQL语句没有被运行过,处于首次运行,则需要对其进行语法分析,语义识别,跟据统计信息生成最佳的执行计划,然后对其执行。而软解析呢,则是由于在library cache已经存在与该SQL语句一致的SQL语句文本、运行环境,即有相同的父游标与子游标,采用拿来.
阅读全文
摘要:通上面的学习,先初始化解释器的状态,然后调用解释器来执行方法。解释器又分为两种,一种是使用汇编写成性能优化的解释器,一种是使用标准C语言写成的解释器,可以很通用,理解起来也容易一些。接着下来,就先来理解C语言写成的解释器,函数dvmInterpretStd的代码如下:boolINTERP_FUNC_NAME(Thread* self,InterpState* interpState){这个函数输入两个参数,第一个参数self是执行代码的线程对象;第二个参数interpState是解释器运行相关参数。#ifdefined(EASY_GDB) StackSaveArea* debugSaveA..
阅读全文
摘要:在前面两个函数的介绍里,已经找到要执行方法的类,要执行的方法ID,那么接着下来要做的事情,就是执行方法,其实就是解释Java程序的字节码。那么Davlik虚拟机是怎么样执行方法的代码呢?又是怎么样解释这些字节码指令呢?因此,就先来分析函数CallStaticVoidMethod的代码,直接拿这个函数名称在源程序里查找,是查找不到的,因为代码里并没有直接使用这个名称来声明函数,其实是使用宏来实现的,如下:CALL_STATIC(void,Void, , , false);从上面可以看到,这是一个宏定义CALL_STATIC生成的函数,直接查找是不行的。接着来看一看这个宏到底是怎么样定义的,如下:
阅读全文
摘要:游标是数据库领域较为复杂的一个概念,因为游标包含了shared cursor和session cursor。两者有其不同的概念,也有不同的表现形式。共享游标的概念易于与SQL语句中定义的游标相混淆。本文主要描述解析过程中的父游标,子游标以及共享游标,即shared cursor,同时给出了游标(session cursor)的生命周期以及游标的解析过程的描述。 有关游标的定义,声明,与使用请参考:PL/SQL 游标 有关硬解析与软解析请参考:Oracle 硬解析与软解析一、相关定义 shared cursor 也即是共享游标,是SQL语句在游标解析阶段生成获得的,是位于library ca..
阅读全文
摘要:曾经的刘翔,可谓是一文不名,无人问津。尽管在雅典奥运之前的他,或多或少获得过这样或那样的奖项,但对我等不好体育之辈真可谓知之甚少。然历史总是给人以奇迹或震感。时间就永远定格在了雅典奥运北京时间2004年8月28日凌晨2点40分,110米男子跨栏奥运冠军属于刘翔,首次属于华人。从此亚洲飞人创造了神话,改写了历史,使得这个体育新星一时间声名鹊起,童叟皆知,响彻大江南北而誉满全球。 事实上,任何人的成功并非一朝一夕。正所谓冰冻三尺,非一日之寒,为山九仞,岂一日之功。可谓是必然中的偶然,偶然中的必然。纵观刘翔的成长足迹,可见一斑。刘翔从1990年即7岁起结缘田径,1996年获得上海市少年田径锦标赛乙.
阅读全文
摘要:DBMS_XPLAN包中display_cursor函数不同于display函数,display_cursor用于显示SQL语句的真实的执行计划,在大多数情况下,显示真实的执行计划有助于更好的分析SQL语句的全过程,尤其是运行此SQL语句实时的I/O开销。通过对比预估的I/O与真实的I/O开销来判断SQL语句所存在问题,如缺少统计信息,SQL语句执行的次数,根据实际中间结果集的大小来选择合适的连接方式等。本文仅仅讲述display_cursor函数的使用。 有关执行计划中各字段模块的描述请参考: 执行计划中各字段各模块描述 有关由SQL语句来获取执行计划请参考: 使用 EXPLAIN...
阅读全文
摘要:DBMS_XPLAN包包括一系列函数,主要是用于显示SQL语句的执行计划,且不同的情形下使用不同的函数来显示,如预估的执行计划则使用display函数,而实际的执行计划则是用display_cursor函数,对于awr中的执行计划,则是用display_awr函数,而SQL tuning集合中的执行计划则由display_sqlset来完成。本文主要描述DBMS_XPLAN包中display函数的使用,尽管可以通过SQL语句来查询缺省表plan_table来获得执行计划,事实上,使用display函数更便捷,且display函数提供了多种不同的显示格式。 有关执行计划中各字段模块的描...
阅读全文
摘要:在SQL语句的执行计划中,包含很多字段项和很多模块,其不同字段代表了不同的含义且在不同的情形下某些字段、模块显示或不显示,下面的描述给出了执行计划中各字段的含义以及各模块的描述。 有关执行计划中各字段模块的描述请参考: 执行计划中各字段各模块描述 有关由SQL语句来获取执行计划请参考: 使用 EXPLAIN PLAN 获取SQL语句执行计划 有关使用autotrace来获取执行计划请参考:启用 AUTOTRACE 功能 有关display_cursor函数的使用请参考: dbms_xplan之display_cursor函数的使用一、执行计划中各字段的描述1、基本字段(总是可用的) Id...
阅读全文
摘要:在Dalvik虚拟机启动时,曾经使用函数GetStaticMethodID获取静态函数main的ID,以便调用整个Java程序运行起来,那么这个函数怎么样从加载的类里查找到静态方法的ID呢?下面就来分析这个函数的代码,来回答这个问题。函数GetStaticMethodID调用JNI的代码如下:staticjmethodID GetStaticMethodID(JNIEnv*env, jclass jclazz, constchar*name, constchar*sig){这个函数传入两个参数,第一个参数是jni的环境参数;第二个参数jclazz是要查找方法的类对象;第三个参数name是需..
阅读全文
摘要:在索引列上使用函数使得索引失效的是常见的索引失效原因之一,因此尽可能的避免在索引列上使用函数。尽管可以使用基于函数的索引来解决索引失效的问题,但如此一来带来的比如磁盘空间的占用以及列上过多的索引导致DML性能的下降。本文描述的是一个索引列上使用函数使其失效的案例。一、数据版本与原始语句及相关信息1.版本信息SQL> select * from v$version; BANNER ...
阅读全文
摘要:从前面我们知道,在虚拟机初始化后,运行Java代码的方法时,要先查找到类,也就是调用函数FindClass。接着后面分析怎么样从dex文件加载类数据到内存,现在开始对查找函数FindClass进行分析,就很好理解了,因为前面介绍加载类到内存的流程已经很清楚。函数FindClass代码如下:static jclass FindClass(JNIEnv* env, const char* name){这个函数传入两个参数,第一个参数是jni的环境参数;第二个参数name是需要查找的类描述名称。 JNI_ENTER(); const Method* thisMethod; ClassObjec...
阅读全文