自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 "NOT NULL"约束对索引的影响

 今天在CSDN上看到网友提出的一个关于“select distinct col from tabname”这样语句会不会用到col字段上索引的讨论。起初我毫不犹豫的以为,肯定可以使用到索引:全索引扫描。并且还做了一个试验加以验证:SQL> select * from dept;     DEPTNO DNAME          LOC ---------- -------------- -

2008-07-24 09:26:00 1070

原创 sql调优4:修改sql,去视图

 场景:     新物资系统中发现有不少sql使用了视图,从语句上来看,可读性稍好些,但性能很差,经加适当索引后,语句的性能有改观,但仍然存在表扫描的情况。笔者尝试去掉视图后,发现执行计划改善,性能提高。修改前的语句:with temp as(  select *    from (      select MATERIAL_ID, rownumber() over () as rn     

2008-07-23 14:23:00 1012 1

原创 911错不一定是死锁,怎么区分死锁和超时

 大家在开发、测试过程中,常见到程序报911这样的错,查看一下帮助:d:/>db2 ? sql0911nSQL0911N因为死锁或超时,所以当前事务已回滚。原因码为          ""。解释:当前工作单元涉及到未解决的对使用对象的争用,因此不得不回滚。原因码如下: 2 由于死锁而导致事务已回滚。 68 由于锁定超时而导致事务已回滚。 72 因为存在与事务中所涉及的 DB2 Data Lin

2008-07-23 14:22:00 4237

原创 sql调优3:调整db2的优化器级别

 db2缺省的优化器级别为5,级别越高优化程度越高,大多数情况下为应用程序绑定时指定高级别的优化器会提高性能,但有时因机器硬件或内存分配不合适,高级别的优化会消耗更多的资源,有时会优化报错。本人碰到过几次因优化器不能正常工作反而使sql的性能急剧下降的案例。先转载一下关于db2优化器的官方资料:优化级别 n=0,1,2,3,5,7,9可以在编译 SQL 查询时指定下列其中一个优化器级别: 0 

2008-07-23 14:21:00 3965

原创 db2逻辑备份数据库案例export_data

 适应场景:    1、 全库备份,可能有多个schema,可能用于跨平台恢复数据    2、 表里含有标识列    3、 大字段的大小不超过32K(超过的在db2move导出文件里会被截断,丢失数据?-- 待证实。)文件结构:export_data --|-- db2move            # 文件夹,存放导出的数据文件              |-- ddl             

2008-07-23 14:19:00 1947

原创 关于标识列(自增列)的对比试验、使用示例

 试验环境:         建表t1、t2分别含有不同类型的标识列id,对比不同点D:/>db2 connect to test user cwgladm using cwglpass   数据库连接信息 数据库服务器         = DB2/NT 8.2.9 SQL 授权标识         = CWGLADM 本地数据库别名       = TESTD:/>db2 select ch

2008-07-23 14:16:00 2949

原创 sql事件监视器运用案例

 在209上建立sql语句事件监视器,监视sql语句的执行情况。D:/>db2 create event monitor sql ^More? for statements ^                                   -- 指定监视器的内容More? where AUTH_ID=WZGLADM ^                          -- 指定监视

2008-07-23 14:14:00 760

原创 db2监视表空间使用情况、中断数据库连接进程的脚本示例

 1、显示当前数据库表空间的使用情况WINDOWS: d:/>for /f "skip=2 tokens=1,3" %a in (db2 list tablespaces show detail) do @if %a==名称 (echo %a = %b) else (@if %a==总计页数 (echo %a        = %b) else (@if %a==高水位标记(页) (ech

2008-07-23 14:13:00 1706 1

原创 sql优化2:db2关于 in (常量...)优化建议

 我们在设计程序里,经常碰到需要态组装sql条件的情况,例如,下面是从后台抓取的sql:update MAT_REQPLAN set GATHERFLAG=1 where 1=1and REQPLAN_ID in (select distinct REQPLAN_ID                   from MAT_MATERIAL   where MATERIAL_ID in (0,2

2008-07-23 14:08:00 3212

原创 查看执行计划 db2expln 使用说明

 单个语句:d:/>db2expln -d wz20901 -u wzgladm wzglpass -t -q "update MAT_MATERIAL set GATHERPLAN_ID=null  where GATHERPLAN_ID =2005178  or GATHERPLAN_ID=32 "DB2 Universal Database Version 8.1, 5622-044 (

2008-07-23 14:06:00 6291

原创 查看锁等待情况 db2pd 使用说明

 1、查看锁等待情况 db2pd -db [ dbname ] -locks 主要关注Sts列,其中W代表Waitingd:/>db2pd -d test -locksDatabase Partition 0 -- Database TEST -- Active -- Up 0 days 00:02:21 -- Date 2008-06-24 16:11:26Locks:A

2008-07-23 14:04:00 6125

原创 死锁监视器db2detaildeadlock使用说明

 1、死锁事件监控器是db2每个数据库缺省建立的监视器,写文件的形式,存放路径在db2event目录下,如:windows:F:/>cd F:/DB2_WZGL/NODE0000/SQL00001/DB2EVENT/db2detaildeadlockF:/>db2 set event monitor db2detaildeadlock state=0DB20000I  SQL 命令成功完成。F

2008-07-23 14:03:00 5900

原创 备忘:同一服务器如何进入不同的db2实例,即如何切换实例?

 UNIX: 直接切换实例用户,su - instxxx# su - inst14$ db2 get instance The current database manager instance is:  inst14$$ exit# su - inst15$ db2 get instance The current database manager instance is:  inst15$

2008-07-23 14:02:00 2372

原创 案例分析2:为什么db2频现“锁等待”或“911”错误

 为什么db2频现“锁等待”或“911”错误      大家都知道,多个事务同时更新同一个数据行时必定要发生锁等待。虽然这个是造成锁等待或锁超时的原因,但不是全部。有不少同事在开发过程中发现这样的问题:自己只做一个根据主键update语句,就更新一行,且确知没有别人在更新这行,为什么语句迟迟没反应,想死锁了一样。本人通过几次尝试和试验发现了“秘密”。即db2的严重影响并发性能的地方:1、无索引,r

2008-07-23 14:00:00 4081

原创 sql优化1:分页查询

 sql优化1:分页查询测试环境:192.168.0.209上的wzgltest数据库工具:db2命令行样表:PROJECT_MATERIALD:/>db2 select count(*) from PROJECT_MATERIAL with ur1-----------    1148372  1 条记录已选择。场景:    分页显示该表的所有内容,每页显示10行记录。===========

2008-07-23 13:58:00 1423

原创 试验:db2 导入数据选项 " replace " 会保留没被覆盖的数据吗?

 思想:建一个表,插入部分数据,导出后,再插入不同的数据,导入加“replace”选项,观察db2move、import导入数据后的结果,过程比较简单,上代码:1、建表、插入数据:d:/>db2 connect to test user cwgladm using cwglpass   数据库连接信息 数据库服务器         = DB2/NT 8.2.9 SQL 授权标识        

2008-07-23 13:52:00 2804

原创 关于游标cursor、游标引用 ref cursor

  游标 cursor:查询返回的结果集  1、静态游标,与定义好的查询关联;   a、显式游标      type t_type is record(                      --    定义保存结果的类型                       pk     t.pk%type                      ,name1  t.name1%

2008-07-23 13:50:00 932

原创 逻辑备份案例:windows平台oracle导数据的逻辑备份脚本,备份后自动压缩 rar

这是201服务器上目前在用的定时备份脚本,共两个文件auto_bakcup_oracle.bat、parfile.txt 文件内容如下:auto_backup_oracle.bat内容:@echo offrem .rem .rem ======================================================================rem .rem 这是一

2008-07-23 13:35:00 1030

原创 案例分析1:为什么强烈建议所有的外键要加索引

  环境准备:建主从表,主表dept,子表emp及主外键约束======================================================================chennan@cwgl94>CREATE TABLE DEPT AS SELECT * FROM SCOTT.DEPT;表已创建。chennan@cwgl94>CREATE 

2008-07-23 13:31:00 987

原创 Oracle显示用户所有系统权限

 用户的系统权限,有的是直接赋予的,有的是通过角色间接赋予的。而角色也是可以授予直接系统权限和其他角色权限的,这样,要查用户的系统权限,就要查询出系统权限和所有角色的系统权限。下面就是运用Oracle的层次化查询来完成这个功能的。脚本show_sys_privs.sql内容如下,带一个参数(username):SET VERIFY OFFdefine v1=&1select privilege

2008-07-23 13:29:00 2409

原创 Oracle阻塞(锁等待)查询

  主要查询v$lock、v$session视图。v$lock中的id1,id2为锁定的对象标识,block为阻塞数目。脚本show_blocker.sql相关代码如下:col block_msg for a80select c.terminal|| (||a.sid||,||c.serial#||) is blocking ||b.sid block_

2008-07-23 13:27:00 2521

原创 学习笔记:关于PL/SQL 集合类型record、pl/sql表、varray、nested table

record:该集合可以存储一对多的标量属性。pl/sql表:是pl/sql代码中的“表”,只存在应用运行期间(内存里),类似“数组”,稀疏的,大小可以动态增长,可以有负下标,但不能存储在数据库表中。varray:与pl/sql区别是可以在表列中存储,是密集的,不能删除单独记录,不能有负下标,固定大小的集合。nested table:可以在表列中存储,稀疏的,可以删除单独记录,不能有负下标,大小可

2008-07-23 13:16:00 1276

原创 “被误删除的package能恢复吗”logmnr案例:恢复被drop的包

建表test、建package:mypackSQL> conn chennan/xxxx已连接。SQL>SQL> create table test(id number primary key,name varchar2(20));表已创建。SQL> ed已写入文件 afiedt.buf  1  begin  2  for x in 1 .. 10 loop  3  insert into t

2008-07-23 12:20:00 1834

原创 Oracle分析函数学习笔记3

环境:windows 2000 server + Oracle8.1.7 + sql*plus目的:以oracle自带的scott模式为测试环境,主要通过试验体会分析函数的用法。类似 sum(...) over ... 的使用1.原表信息:SQL> break on deptno skip 1  -- 为效果更明显,把不同部门的数据隔段显示。SQL> select deptno,ename,sal

2005-08-05 16:47:00 1334 1

原创 Oracle分析函数学习笔记2

环境:windows 2000 server + Oracle8.1.7 + sql*plus目的:以oracle自带的scott模式为测试环境,主要通过试验体会分析函数的用法。2.rank()、dense_rank() 的使用原表信息:SQL> break on deptno skip 1  -- 为效果更明显,把不同部门的数据隔段显示。SQL> select deptno,ename,sal

2005-08-04 16:41:00 904

原创 Oracle分析函数学习笔记1

环境:windows 2000 server + Oracle8.1.7 + sql*plus目的:以oracle自带的scott模式为测试环境,主要通过试验体会分析函数的用法。1.row_number() 的使用原表信息:SQL> break on deptno skip 1  -- 为效果更明显,把不同部门的数据隔段显示。SQL> select deptno,ename,sal  2  fro

2005-08-04 16:39:00 878

原创 utl_file使用总结

环境:windows 2000 server + oracle 8.1.71.读文件举例:-- 环境 windows 2000 server + oracle 8.1.7-- 先在 init.ora中的参数utl_file_dir-- 例:  utl_file_dir=(d:/test,e://,e:/share)-- set serveroutput on size 1000000 format

2005-08-03 20:25:00 1271

原创 不知道用户口令情况下,如何把表建在指定模式下?

主要是用到"alter user xxx identified by values yyyyy"示例如下:SQL> conn system/manager@mydb已连接。SQL> show userUSER 为"SYSTEM"SQL> select password from dba_users where username=USER1;PASSWORD-------------------

2005-07-30 14:40:00 1115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除