缓冲池用来进行表或索引的缓存,一个数据库至少要有一个缓冲池 ,缓冲池有4k,8k,16k,32k; 表空间的页面大小要和缓冲池保持一致,减少直接的I/O访问,提高I/O访问速度。默认的缓冲池为IBMDEFAuLTBP(4K)
CREATE BUFFERPOOL
DROP BUFFERPOOL
ALTER BUFFERPOOL
CREATE BUFFERPOOL NMDB4K IMMEDIATE SIZE 250 PAGESIZE 4 K ;
ALTER BUFFERPOOL IBMDEFAULTBP IMMEDIATE SIZE 50000;
列出缓冲池
SELECT * FROM SYSCAT.BUFFERPOOLS
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
创建视图:create view viewname as select statement
删除视图:drop view viewname
注:视图唯一能修改的是引用类型列,改变列的范围。其他定义好了都不能修改。当视图基于的基表drop后,视图变为无效。
列出用户下的所有视图
Select * from sysibm.sysviews WHERE CREATOR='USER'
不隐式地提交当前事务 ,是否提交视环境设定而定。
l SELECT:从表中查询符合数据
注:条件中连接的问题,避免出现笛卡儿乘积
l DELETE:删除已有表的数据
l UPDATE:更新已有表的数据
l INSERT:向已有表中插入数据
注:DELETE,UPDATE和INSERT是否直接提交取决与执行语句所在的环境。
在执行时注意事务日志满的情况。
select时,注意索引谓词和非索引谓词,尽量在有索引的列上使用索引谓词。
谓词类型 可索引 注 释
Col∝con Y ∝代表>,>=,=,<=,但是<>不是可索引的。
Col between con1 and con2 Y 在匹配系列中必须是最后的。
Col in list Y 仅对一个匹配列
Col is null Y
Col like ‘xyz%’ Y 模糊匹配%在后面。
Col like ‘%xyz’ N 模糊匹配%在前面。
Col1∝Col2 N Col1和col2来自同一个表
Col∝Expression N 例如:c1(c1+1)/2
Pred1 and Pred2 Y Pred1和Pred2都是可索引的,
指相同索引的列
Pred1 or Pred2 N 除了(c1=a or c1=b)外,
他可以被认为是c1 in(a,b)
Not Pred1 N 或者任何的等价形式:
Not between,Not in,Not like等等。
尽量不要使用<>,表达式,or,not,模糊匹配%尽量不要放前面
语法格式:
DELETE FROM tablename WHERE (conditions)
语法格式:
INSERT INTO tablename (col1,col2,…) VALUES (value1,value2,…);
INSERT INTO tablename (col1,col2,…) VALUES (value1, value2,…), (value1, value2,…),……
Insert不会等待任何程序,不会导致锁定。
INSERT INTO tablename (col1,col2,…) select 语句
语法格式:
UPDATE tabname SET (col1=values1,col2=values2,…) WHERE (conditions);
注:update的速度比较慢,要在相应列上建立索引。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9524210/viewspace-471545/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9524210/viewspace-471545/