济南网页设计|自助建站济南网站建设|聊城网站建设济南网站制作|济南网站优化 http://www.mzwkj.com www.tuanqv.com

2007年5月24日

摘要: 在实际的任何一个系统中,查询都是必不可少的一个功能,而查询设计的好坏又影响到系统的响应时间和性能这两个关键指标,尤其是当数据量变得越来越大时,于是如何处理大数据量的查询成了每个系统架构设计时都必须面对的问题。本文将从数据及数据查询的特点分析出发,结合讨论现有各种解决方案的优缺点及其适用范围,来阐述J2EE平台下如何进行查询框架的设计。ValueListHandler模式及其局限性在J2EE应用中,对于大数据量查询的处理有许多好的成功经验,比如ValueListHandler设计模式就是其中非常经典的一个,见图1。该模式创建一个ValueListHandler对象来控制查询的执行以及结果集的缓存 阅读全文
posted @ 2007-05-24 18:23 路大侠 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 如果我们按照示例想得到每个部门薪水值最高的雇员的纪录,可以有四种方法实现:先创建示例表createtableempasselect*fromscott.emp;altertableempaddconstraintemp_pkprimarykey(empno);createtabledeptasselect*fromscott.dept;altertabledeptaddconstraintdept_pkprimarykey(deptno);方法1.emp中的每一行都会进行max比较,费时select*fromempemp1whereemp1.sal=(selectmax(emp2.sal)fr 阅读全文
posted @ 2007-05-24 12:03 路大侠 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 实际应用中我们可以通过sum()统计出组中的总计或者是累加值,具体示例如下:1.创建演示表createtableempasselect*fromscott.emp;altertableempaddconstraintemp_pkprimarykey(empno);createtabledeptasselect*fromscott.dept;altertabledeptaddconstraintdept_pkprimarykey(deptno);2. sum()语句如下:selectdeptno,ename,sal, --按照部门薪水累加(orderby改变了分析函数的作用,只工作在当前行和前. 阅读全文
posted @ 2007-05-24 12:03 路大侠 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 有些时候我们希望得到指定数据中的前n列,示例如下:得到每个部门薪水最高的三个雇员:先创建示例表createtableempasselect*fromscott.emp;altertableempaddconstraintemp_pkprimarykey(empno);createtabledeptasselect*fromscott.dept;altertabledeptaddconstraintdept_pkprimarykey(deptno);先看一下row_number() /rank()/dense_rank()三个函数之间的区别selectemp.deptno,emp.sal,emp 阅读全文
posted @ 2007-05-24 12:02 路大侠 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Oracle支持通过ref游标在调用存储过程后返回结果集,使用游标在内存消耗以及时间上都要大大的优于返回数组变量的做法!示例如下:数据库方面,建立一个Packagecreateorreplacepackageref_cur_demoistypercisrefcursor;procedureref_cursor(p_ownerinvarchar2,p_cursorinoutrc);endref_cur_demo;createorreplacepackagebodyref_cur_demoisprocedureref_cursor(p_ownerinvarchar2,p_cursorinoutrc 阅读全文
posted @ 2007-05-24 12:01 路大侠 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 有时候报表上面需要显示该笔操作的上一步骤或者下一步骤的详细信息,这个时候可以按照下面的做法:先创建示例表:--CreatetablecreatetableLEAD_TABLE(CASEIDVARCHAR2(10),STEPIDVARCHAR2(10),ACTIONDATEDATE)tablespaceCOLM_DATApctfree10initrans1maxtrans255storage(initial64Kminextents1maxextentsunlimited);insertintoLEAD_TABLEvalues('Case1','Step1',to 阅读全文
posted @ 2007-05-24 12:01 路大侠 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 批量处理一般用在ETL操作, ETL代表提取(extract),转换(transform),装载(load), 是一个数据仓库的词汇!类似于下面的结构:forx(select*from...)loopProcessdata;insertintotablevalues(...);endloop;一般情况下, 我们处理大笔的数据插入动作, 有2种做法, 第一种就是一笔笔的循环插入createtablet1asselect*fromuser_tableswhere1=0;createtablet2asselect*fromuser_tableswhere1=0;createtablet3assele 阅读全文
posted @ 2007-05-24 12:00 路大侠 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 使用Package的优点在于提供了必需的程序设计结构, 促进了模块化编程设计, 最重要的是Package断开了依赖链, 使得对某个数据库模式的改动不会导致整个模式的无效,从而避免了昂贵的重编译! 例如: 存在table t , procedure p1 p2, view v, function f, 它们之间引用关系如下:selectname,type,referenced_name,referenced_typefromuser_dependencieswherereferenced_owner='SCOTT'orderbyname;F FUNCTION T TABLEP1P 阅读全文
posted @ 2007-05-24 11:59 路大侠 阅读(325) 评论(0) 推荐(0) 编辑
摘要: SQL调优确实有很多值得深入的地方 ,而且SQL调优也是一项很艰难的工作,分享一篇网上好文,以飨各位!其中提到的[在缺省情况下,ORACLE采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器. ]在很多场景下非常有用,诸如update tableA_name set column_name = (select column_value from tableB_name where tableB_name.fid = tableA_name.freferenceid ) wh. 阅读全文
posted @ 2007-05-24 11:58 路大侠 阅读(143) 评论(0) 推荐(0) 编辑

导航

济南户外拓展|企业户外拓展 http://www.tuanqv.com