`
wanglei8
  • 浏览: 69373 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论
文章列表
在SQL擅长的地方使用SQL。如果是SQL很容易就能完成的事,就没必要在代码中做这种事,譬如汇总。SQL能更快地处理数据。设计SQL就是为了做这些事的。 假定成功。先执行后检查执行是否像预期的那样起了作用。 更改代码结构。如果接连有两条语句访问同一个表,那么你必须质疑该程序在这两条语句之间所做的事情是否有足够的理由对数据库服务器访问两次。 合并语句。通常只要在where子句中加上or和聪明的使用case,就能将运行时间缩短2倍、3倍或更多倍,这就看你能将多少条语句合在一起了 使用汇总 用coalesce()或nvl()代替if ... is null 使用异常。避免多次访问同一张表,条件判断在异 ...
创建一个drop_schema.sql文件,内容如下 set define on set serveroutput on connect / as sysdba define schema = &1 -- Kill Session connecting to the schemas to be dropped Declare Cursor c_session Is SELECT s.sid, s.serial# FROM gv$session s JOIN gv$process p ON p.addr = s.paddr ...
消除重复的模式(union之类的集合操作符的不同部分;子查询中的select,from,where子句中;from子句中以各种其他方式出现的引用) 技术:case,汇总技术; with子句;去掉没必要的distinct转移到子查询;min之类的函数会忽略null;去掉无用的连接;union去掉了重复记录,因此distinct不是必要的;如果有外部连接需要返回记录,则外连接没有意义会更慢,应该改为内连接; in() 隐含着一个distinct 玩转子查询 及早启用过滤条件 简化条件(让访问每个表的次数尽可能的少)   如果几个子查询引用的是同一个表,那么就检查一下是否能一遍就收集到所有的信息 ...
这是因为eclipse不能找到javaw.exe的路径 编辑"eclipse.ini"文件 在vmargs设置前面增加vm配置即可 -vm C:\Program Files\Java\jdk1.6.0_22\bin\javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
参考 http://www.itpub.net/viewthread.php?tid=845777&extra=&page=1 Analyze Statement The ANALYZE statement can be used to gather statistics for a specific table, index or cluster. The statistics can be computed exactly, or estimated based on a specific number of rows, or a percentage of rows: ...
各位在使用Oracle的过程中,偶尔会遇到死锁问题,运用下面两条语句即可轻松解决。 -- 查询死锁情况 SELECT dob.OBJECT_NAME Table_Name, vss.SID, vss.SERIAL#, vss.action Action, vss.osuser OSUSER, vss.process AP_Process_ID, VPS.SPID DB_Process_ID, VSS.STATUS, VSS.ST ...
执行DBMS_UTILITY.COMPILE_SCHEMA存储过程时,报如下错误: ERROR at line 1: ORA-20000: ORA-06512: at "SYS.DBMS_UTILITY", line 347 ORA-24237: object id argument passed to DBMS_UTILITY.INVALIDATE is not legal ORA-06512: at line 1 需要检查sys的用户权限 select username, privilege from user_sys_privs order by ...
第一种可能 使用的数据库sid名不正确。用如下命令 SELECT NAME FROM v$database; 第二种可能 如果sid配置没有错误,但是还是报错,那可能就是oracle的监听配置出了问题,需要检查listener.ora文件。 正确配置如下: # listener.ora Network Configuration File: SID_LIST_LISTENER =   (SID_LIST =     (SID_DESC =       (SID_NAME = PLSExtProc)       (ORACLE_HOME = /usr/lib/oracle/xe/app/or ...
大家好,今天想要和大家分享的主题是Oracle的逻辑运算符是否短路。 首先说明一下什么是短路逻辑运算符,首先使用java的短路逻辑运算符&&和||来举例,代码如下 public class ShortCircuitTest { public static void main(String[] args) { if((isItSmall(3)) || (isItSmall(7))) { System.out.println("Result is true"); } else { System.out.println(" ...
--建立测试数据 create table a(id number); create table b(id number); insert into a values(1); insert into a values(2); insert into a values(3); insert into b values(1); insert into b values(2); insert into b values(4); commit; --左: --主流数据库通用的方法 select * from a left join b on a.id=b.id; --O ...
SQL Best Practices 1.用EXISTS代替DISTINCT,消除sort operation,例如: SELECT DISTINCT d.deptno, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno; 可以使用EXISTS形式代替 SELECT d.deptno, d.dname FROM dept d WHERE EXISTS (SELECT 1 FROM emp e WHERE e.deptno = d.deptno); 2.如果在GROUP BY中过滤数据,在WHERE从 ...
in与exists处理起来是非常不同的。 1.这里使用in方式关联两个表,称为第一个查询。 select * from t1 where x in(select y from t2); 这条sql语句处理起来就像如下: select * from t1,(select distinct y from t2)t2 where t1.x = t2.y; 这个子查询被评估,去重复(distincted), 被使用索引(indexed)(或者 hashed 或者 sorted),然后与原始表(t1表)连接 2.这里使用exists方式关联两个表,称为第二个查询。 sele ...
Oracle锁定策略总结: 1.Oracle只在修改时才对数据加行级锁。正常情况下不会升级到块级锁或表级锁(不过两段提交期间的一段很短的时间内除外,这是一个不常见的操作)。 2.如果只是读数据,Oracle绝不会对数据锁定。不会因为简单的读操作在数据行上锁定。 3.写入器(writer)不会阻塞读取器(reader)。换种说法:读(read)不会被写(write)阻塞。这一点几乎与其他所有数据都不一样。在其他数据库中,读往往会被写阻塞。尽管听上去这个特性似乎很不错(一般情况确实如此),但是,如果你没有充分理解这个思想,而且想通过应用逻辑对应用施加完整性约束,就极有可能做得不对。 4.写入器想写某 ...
锁就是防止其他事务访问指定的资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。 一般来说,锁可以防止脏读、不可重复读和幻觉读。   脏读就,是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。   不可重复读,是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二 ...
1.数据库建立为UTF-8格式 2.项目右键属性为UTF-8格式 3.所有页面申明为UTF-8 4.JDBC URL设为:UTF-8 jdbc:mysql://localhost:3306/company?useUnicode=true&characterEncoding=utf-8 5.数据库Driver选择UTF-8格式 6.Tomcat编码改成UTF-8 在server.xml里面增加URIEncoding="UTF-8" <Connector port="8080" maxHttpHeaderSize="8192&qu ...
Global site tag (gtag.js) - Google Analytics