自己整理的學習資料——DB2 V8資料庫基礎(十七)

rheet1978發表於2008-10-17

3.2.4   緩衝池  

緩衝池用來進行表或索引的快取,一個資料庫至少要有一個緩衝池 ,緩衝池有4k8k16k32k 表空間的頁面大小要和緩衝池保持一致,減少直接的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

 

3.2.5   索引:

建立索引:create [unique] index idxname on tabname(col.)

刪除索引:drop index idxname

注:索引是不可更改的,想更改必須刪除重新建。

3.2.6   檢視:

建立檢視:create view viewname as select statement

刪除檢視:drop view viewname

注:檢視唯一能修改的是引用型別列,改變列的範圍。其他定義好了都不能修改。當檢視基於的基表drop後,檢視變為無效。

 

列出使用者下的所有檢視

  Select  *  from  sysibm.sysviews  WHERE   CREATOR='USER'

  

3.3    DML資料庫操縱語言

不隱式地提交當前事務 ,是否提交視環境設定而定。

 

l         SELECT:從表中查詢符合資料

注:條件中連線的問題,避免出現笛卡兒乘積

l         DELETE:刪除已有表的資料

l         UPDATE:更新已有表的資料

l         INSERT:向已有表中插入資料

注:DELETEUPDATEINSERT是否直接提交取決與執行語句所在的環境。

在執行時注意事務日誌滿的情況。

3.3.1   SELECT

select時,注意索引謂詞和非索引謂詞,儘量在有索引的列上使用索引謂詞。

謂詞型別                           可索引                

Colcon                                   Y                  ∝代表>,>=,=,<=,但是<>不是可索引的。

Col between con1 and con2         Y                  在匹配系列中必須是最後的。

Col in list                                   Y                  僅對一個匹配列

Col is null                                  Y

Col like xyz%                     Y                  模糊匹配%在後面。

Col like %xyz                     N                  模糊匹配%在前面。

Col1Col2                                N                  Col1col2來自同一個表

ColExpression                         N                  例如:c1c1+1/2

Pred1 and Pred2                          Y                  Pred1Pred2都是可索引的,

指相同索引的列

Pred1 or Pred2                           N                  除了(c1=a or c1=b)外,

他可以被認為是c1 inab

Not Pred1                                   N                  或者任何的等價形式:

Not between,Not in,Not like等等。

 

儘量不要使用<>,表示式,ornot,模糊匹配%儘量不要放前面

3.3.2   DELETE

語法格式:

DELETE FROM tablename WHERE (conditions)

3.3.3   INSERT

語法格式:

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 語句

3.3.4   UPDATE

語法格式:

UPDATE tabname SET (col1=values1,col2=values2,…) WHERE (conditions);

注:update的速度比較慢,要在相應列上建立索引。  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9524210/viewspace-471545/,如需轉載,請註明出處,否則將追究法律責任。

相關文章