摘要: 最近做信息采集,总是需要创建临时表,一同连接8个库同时开展。但是ORACLE里面没有像SQLSERVER那样的if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[HY_BSCDNM_J]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[HY_BSCDNM_J]GOCREATE TABLE .......为避免总是要去点击SURE,所以参考了网上的方法,在创建临时表的时候,省去点击的麻烦。待采集脚本写 阅读全文
posted @ 2011-08-23 20:38 老猫-DB 阅读(3810) 评论(0) 推荐(0) 编辑
摘要: 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_a 阅读全文
posted @ 2011-08-20 15:39 老猫-DB 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 测试环境 sqlserver 2005工作需要,回家再转成oracle的--游标调用函数--1、建立基表create table planwork( planid int, empid int)insert into planwork values (1,100)insert into planwork values (2,200)insert into planwork values (3,300)insert into planwork values (4,400)insert into planwork values (5,500)insert into planwork values 阅读全文
posted @ 2011-08-20 10:04 老猫-DB 阅读(461) 评论(0) 推荐(1) 编辑
摘要: 目录--- 一.相关的概念 Rowid的概念 Recursive (回归的, 递归的) Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scans, FTS) 2) 通过ROWID的表存取(Table Access by ROWID或rowid lookup) 3)索引扫描(Index Scan或index lookup)有4种类型的索引扫描: (1) 索引唯一扫描(i 阅读全文
posted @ 2011-08-19 12:33 老猫-DB 阅读(337) 评论(0) 推荐(0) 编辑
摘要: ORACLE SQL语句优化技术分析一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。 在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果 阅读全文
posted @ 2011-08-18 14:33 老猫-DB 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 目录--- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scans, FTS) 2) 通过ROWID的表存取(Table Access by ROWID或rowid lookup) 3)索引扫描(Index Scan或index lookup)有4种类型的索引扫描: (1) 索引唯一扫描(index unique 阅读全文
posted @ 2011-08-17 13:11 老猫-DB 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 1 With子句1.1 学习目标掌握with子句用法,并且了解with子句能够提高查询效率的原因。1.2 With子句要点1. with子句的返回结果存到用户的临时表空间中,只做一次查询,反复使用,提高效率。2. 如果定义了with子句,而在查询中不使用,那么会报ora-32035 错误:未引用在with子句中定义的查询名。3. 前面的with子句定义的查询在后面的with子句中可以使用。但是一个with子句内部不能嵌套with子句。4. 当一个查询块名字和一个表名或其他的对象相同时,解析器从内向外搜索,优先使用子查询块名字。5. with查询的结果列有别名,引用的时候必须使用别名或*。6. 阅读全文
posted @ 2011-08-17 13:09 老猫-DB 阅读(1455) 评论(2) 推荐(0) 编辑
摘要: 最近做查询时,写的一条查询语句用了两个IN,导致tuexdo服务积压了不少,用户没骂就不错了。最后经过技术经理的点拨,sql语句性能提升了大约10倍,主要用了表连接、建索引、exists。这才感叹SQL性能优化的重要性啊,网上搜了半天,找到一篇令我非常满意的日志,忍不住分享之:一、操作符优化: 1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询 外层 阅读全文
posted @ 2011-08-17 13:04 老猫-DB 阅读(815) 评论(0) 推荐(1) 编辑
摘要: SQL的优化应该从5个方面进行调整:1.去掉不必要的大型表的全表扫描2.缓存小型表的全表扫描3.检验优化索引的使用4.检验优化的连接技术5.尽可能减少执行计划的CostSQL语句:是对数据库(数据)进行操作的惟一途径;消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;可以有不同的写法;易学,难精通。SQL优化:固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致ORACLE优化器:在任何可能的时候都会对表达式进行评估,并且把特 阅读全文
posted @ 2011-08-17 13:01 老猫-DB 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1. 监控事例的等待 select event,sum(decode(wait_Time,0,0,1)) "Prev", sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot" from v$session_Wait group by event order by 4; 2. 回滚段的争用情况 select name, waits, gets, waits/gets "Ratio" from v$rollstat a, v$rollname b where a.usn 阅读全文
posted @ 2011-08-17 13:00 老猫-DB 阅读(739) 评论(0) 推荐(0) 编辑