上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 191 下一页
摘要: 在SQL语句的执行计划中,包含很多字段项和很多模块,其不同字段代表了不同的含义且在不同的情形下某些字段、模块显示或不显示,下面的描述给出了执行计划中各字段的含义以及各模块的描述。 有关执行计划中各字段模块的描述请参考: 执行计划中各字段各模块描述 有关由SQL语句来获取执行计划请参考: 使用 EXPLAIN PLAN 获取SQL语句执行计划 有关使用autotrace来获取执行计划请参考:启用 AUTOTRACE 功能 有关display_cursor函数的使用请参考: dbms_xplan之display_cursor函数的使用一、执行计划中各字段的描述1、基本字段(总是可用的) Id... 阅读全文
posted @ 2011-10-10 17:27 ajuanabc 阅读(227) 评论(0) 推荐(0)
摘要: 在Dalvik虚拟机启动时,曾经使用函数GetStaticMethodID获取静态函数main的ID,以便调用整个Java程序运行起来,那么这个函数怎么样从加载的类里查找到静态方法的ID呢?下面就来分析这个函数的代码,来回答这个问题。函数GetStaticMethodID调用JNI的代码如下:staticjmethodID GetStaticMethodID(JNIEnv*env, jclass jclazz, constchar*name, constchar*sig){这个函数传入两个参数,第一个参数是jni的环境参数;第二个参数jclazz是要查找方法的类对象;第三个参数name是需.. 阅读全文
posted @ 2011-10-08 21:34 ajuanabc 阅读(381) 评论(0) 推荐(0)
摘要: 在索引列上使用函数使得索引失效的是常见的索引失效原因之一,因此尽可能的避免在索引列上使用函数。尽管可以使用基于函数的索引来解决索引失效的问题,但如此一来带来的比如磁盘空间的占用以及列上过多的索引导致DML性能的下降。本文描述的是一个索引列上使用函数使其失效的案例。一、数据版本与原始语句及相关信息1.版本信息SQL> select * from v$version; BANNER ... 阅读全文
posted @ 2011-10-08 11:48 ajuanabc 阅读(272) 评论(0) 推荐(0)
摘要: 从前面我们知道,在虚拟机初始化后,运行Java代码的方法时,要先查找到类,也就是调用函数FindClass。接着后面分析怎么样从dex文件加载类数据到内存,现在开始对查找函数FindClass进行分析,就很好理解了,因为前面介绍加载类到内存的流程已经很清楚。函数FindClass代码如下:static jclass FindClass(JNIEnv* env, const char* name){这个函数传入两个参数,第一个参数是jni的环境参数;第二个参数name是需要查找的类描述名称。 JNI_ENTER(); const Method* thisMethod; ClassObjec... 阅读全文
posted @ 2011-10-06 11:04 ajuanabc 阅读(277) 评论(0) 推荐(0)
摘要: Oracle 临时表空间是Oracle数据库的重要组成部分,尽管该部分并没有cont体系结构上得以展现,但其重要地位也是不容忽视的。尤其是对于大型的频繁操作,如创建索引,排序等等都需要在临时表空间完成来减少内存的开销。当然对于查询性能要求较高的应尽可能的避免在磁盘上完成这些操作。本文主要描述的是临时表空间的管理与受损恢复。一、临时表空间的特性与注意事项1.特性 用户存储临时数据的表空间 临时数据通常只在一个数据库会话期间内存在的数据,分为两种形式,排序数据和全局临时表 临时数据不会被写入存储永久对象的普通表空间内,而是存储在临时表空间的临时段中 临时表空间临时性导致不需要备份该类型的表空间,. 阅读全文
posted @ 2011-09-30 16:53 ajuanabc 阅读(234) 评论(0) 推荐(0)
摘要: SQL查询语句的性能从一定程度上影响整个数据库的性能。很多情况下,数据库性能的低下差不多都是不良SQL语句所引起。而SQL语句的执行计划则决定了SQL语句将会采用何种方式从数据库提取数据并返回给客户端,本文描述的将是如何通过EXPLAIN PLAN 获取SQL语句执行计划来获取SQL语句的执行计划。一、获取SQL语句执行计划的方式 1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 2. 查询动态性能视图v$sql_plan,v$sql_plan_statistics,v$sql_workarea 等来获取已缓存到库缓存中的真实执行计. 阅读全文
posted @ 2011-09-30 16:03 ajuanabc 阅读(429) 评论(0) 推荐(0)
摘要: 接着下来,来分析怎么样加载方法的代码,loadMethodFromDex函数的代码如下:staticvoidloadMethodFromDex(ClassObject*clazz, const DexMethod*pDexMethod, Method*meth){这个函数传入三个参数,第一个参数clazz是类相关信息;第二个参数pDexMethod是要加载的方法相关信息;第三个参数meth是指向加载的方法,也就是可以运行的代码。 DexFile*pDexFile = clazz->pDvmDex->pDexFile;这行代码是获取Dex文件。 constDexMethodId*pM 阅读全文
posted @ 2011-09-25 18:50 ajuanabc 阅读(305) 评论(0) 推荐(0)
摘要: /*found a match, try to load it */ clazz =loadClassFromDex(pDvmDex, pClassDef, loader);这行代码是已经发现合适的类,并且找到相应的Dex文件时,就可以调用函数loadClassFromDex来加载类到内存,并准备好可以运行的状态。 if(dvmCheckException(self)) { /*class was found but had issues */ dvmReleaseTrackedAlloc((Object*)clazz, NULL... 阅读全文
posted @ 2011-09-24 20:22 ajuanabc 阅读(215) 评论(0) 推荐(0)
摘要: Oracle负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作?通常情况下,负载均衡分为客户端负载均衡与服务器端负载均衡。客户端负载均衡通常是在客户端的tnsnames.ora中多添加一个链接地址以及LOAD_BALANCE与failover参数。而服务器端的负载均衡则相对复杂,下面具体描述服务器端负载均衡。 一、负载均衡 注意这里的负载均衡指的是连接的负载均衡,即客户可以随机从不同的实例中连接到数据库 1.配置tnsnames.ora使得该文件中包含如下全部内容: # LISTENERS_DEVDB DEVDB是数据库名,可以使用netmgr,netca. 阅读全文
posted @ 2011-09-19 21:51 ajuanabc 阅读(511) 评论(0) 推荐(0)
摘要: clazz= dvmLookupClass(descriptor, loader, true);if(clazz == NULL) { constDexClassDef*pClassDef;这段代码是调用函数dvmLookupClass在已经加载的类里查找是否已经存在,如果已经存在,就直接使用就可以了。否则,就需要从Dex文件里读取出来。#ifdefWITH_PROFILER dvmMethodTraceClassPrepBegin(); profilerNotified = true;#endif#ifLOG_CLASS_LOADING u8 ... 阅读全文
posted @ 2011-09-18 11:00 ajuanabc 阅读(326) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 191 下一页