<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    DB2常用操作

    d:\winnt\system32\drivers\etc\services文件是對機器名到IP地址的解析。
    d:\winnt\system32\drivers\etc\hosts文件是對端口名到端口號的解析。
    以上兩條上非DB2的,但在DB2中使用到。

    db2admin start 起動DB2管理

    DB2里對一個命令的HELP是:
    >db2 ? 該命令

    db2 連接到遠程數(shù)據(jù)庫
    第一步建一個結(jié)點:
    >db2 catalog tcpip node 結(jié)點名 remote 數(shù)據(jù)庫服務器IP地址 server 端口(50000)
    第二步建一個到庫的聯(lián)結(jié)別名:
    >db2 catalog db 庫名 as 別名 at node 結(jié)點名
    第三步建立聯(lián)結(jié):
    >db2 connect to 別名 user 用戶名 using 用戶密碼
    斷開聯(lián)結(jié):
    db2 connect reset


    db2里需要用到一個系統(tǒng)環(huán)境變量:db2codepage, 缺省值是1386,此值非常重要,客戶端于數(shù)據(jù)庫端的db2codepage不一樣時客戶端就無法連上數(shù)據(jù)庫端。

    DB2里一個表的全名是:schema.表名,缺什情況下不同的用戶看到的表是不一樣的,
    在程序的sql語句里必需用表的全名(切記)。

    查看有哪些程序在使用該數(shù)據(jù)庫:
    >db2 list application
    其結(jié)果中有一個字段application-handle在殺死該引用中用到

    殺死一個程序?qū)υ摂?shù)據(jù)庫的使用:
    >db2 force application {all | (application-handle)}

    在庫被使用時db2stop不能執(zhí)行

    DB2命令后所帶參數(shù):
    -t 以;作為一句結(jié)束
    -f 指向一個文件(即執(zhí)行一個文件中的語句,在command窗口里有些命令無法執(zhí)行,可先用notepad建一個文件然后執(zhí)行它)
    -v (我不知道是什么)
    注釋:-v用于顯示當前所執(zhí)行的sql命令。


    一個windows nt 里的一般用戶可以連到庫,但無一般SQL語句的執(zhí)行權(quán),授權(quán)給一個用戶:
    >db2 grant sql語句(例如:select) on 表名 to user 用戶名
    取消該用戶的權(quán):
    >db2 revoke sql語句 on 表名 from 用戶名


    DB2日志有兩種:循環(huán)日志和永久型日志
    循環(huán)日志:有3個文件循環(huán)寫,所以會產(chǎn)生以前的操作記錄被覆蓋。好處:日志文件大小不變,備份方便,但不可以在線備份。
    永久日志:其日志文件不斷增漲,但操作記錄不會被覆蓋,可以在線備份。

    如何備份:
    >db2 backup db 數(shù)據(jù)庫名 to 設備名(如:c:\);
    恢復:
    >db2 restore db 數(shù)據(jù)庫名 from 設備名
    (回滾rollforward我不太清楚)
    注釋:rollforword 是前滾的意思,向前到某一個時間,以保持數(shù)據(jù)的一致性,用于在線備份后的恢復,恢復是從log日志中開始到日志中的某一個時間,即可。只有在數(shù)據(jù)一致性得到保證的情況下,才能繼續(xù)對數(shù)據(jù)庫操作。

    連接到數(shù)據(jù)庫時報回滾錯誤
    用下面的命令:
    db2 rollforward db fmisadd to end of logs and complete

    導出導入數(shù)據(jù)庫:
    --export
    db2move hadb export -u userid -p password;
    --import
    db2move hadb import -u userid -p password;


    導出庫中表的數(shù)據(jù):
    >export to 文件名.ixf of ixf select * from 表名
    >import from 文件名.ixf of ixf create into 表名
    導出庫的數(shù)據(jù)格式還有兩種del(文件格式)和wsf,但ixf格式信息最全,包含表結(jié)構(gòu)信息,可恢復出已刪去的表。

    sql的inner/left/right/full join,這些概念在<<數(shù)據(jù)庫概論>>中有說明,left以左表為主,right以右表為主,full左右表記錄都會在查尋結(jié)果中。
    例如:>select aa,bb from db1 left join db2 on db1.id=db2.id


    合并查尋:把兩個或幾個查尋結(jié)果合并到一個字段(條件是字段必須兼容)
    格式:select ...... union select ....;

    使用臨時表:
    with tmptable (字段1,...) as (select....)?? --建一個臨時表
    select 字段1,.... from tmptable,另一個表 where....?? --使用該臨時表于另一個表交叉查尋。
    **order by 必需出現(xiàn)在結(jié)果集,在臨時表中不能用。

    截取字符串
    substr(字段名,開始位置,字符個數(shù))

    判斷是否是空
    字段名 is null


    例子:
    到什么時候活了10000天:
    select distinct date('1980-01-01')+10000 day from a
    一共活了多少天:
    select distinct days(current date)-days(date('1980-01-01')) from a

    類型轉(zhuǎn)換:用cast ,例:
    select distinct cast(current date as char(10))||'aa' from a

    case的使用:
    select case when length(rtrim(學歷))=0 then '未知學歷' else xl end,rs from a
    例:查尋一個公司的年齡分布:
    with tmptable as (select case when year(current day)-csrq<20 then '小于20歲'??????????????????????????????????????????????????? when year(current day)-csrq<25 then '20-24歲'???????????????????????????????????????????????????? when year(current day)-csrq<30 then '25-29歲'
    ????????????????????????????? when year(current day)-csrq<35 then '30-34歲'
    ????????????????????????????? when year(current day)-csrq<40 then '35-39歲'
    ????????????????????????????? when year(current day)-csrq<45 then '40-44歲'
    ????????????????????????????? when year(current day)-csrq<50 then '45-49歲' else '大于50歲' end
    as x from a)
    select x,count(*) from tmptable group by x;

    一個數(shù)據(jù)庫中有些系統(tǒng)建的表是用來保存該庫各種信息的,如:syscat.tables
    例:查有多少個userid的表:
    select count(*) from syscat.tables where type='T' and tabschema='uerid'
    例:產(chǎn)生一個備分庫中所有表的文本:
    select 'export to '|| tabname || '.ixf of ixf select * from userid.' ||tabname||';' from syscat.tables where type='T' and tabschema='userid';

    ?

    性能調(diào)整:
    影響到DB2性能的有:
    能夠利用服務器的性能:1.并行性 2.減少通信

    建立Index
    ? <,>,=????? 第一類搜索謂詞,
    ? <>,like??? 第二類搜索謂詞,
    ? 需要用函數(shù) 第三類搜索謂詞,

    select * from a
    *盡量要哪個字段寫哪個字段。

    blocking的概念????? 客戶端請求一次,數(shù)據(jù)庫返回n個記錄。

    復合型SQL(我不太清楚)
    注釋:是指他所講的聯(lián)結(jié)union,建立臨時表等復雜的sql語句。

    DB2會對SQL語句優(yōu)化,系統(tǒng)對表的信息知道的越多,優(yōu)化越好,所以要做runstats
    runstats命令把表的信息告訴系統(tǒng),一般當數(shù)據(jù)量增加一倍時用該命令一次。

    REORG命令是數(shù)據(jù)庫整理,類似于磁盤碎片整理。


    得到該instance的各種參數(shù):(dbm cfg是整個DB2的參數(shù),db cfg是對某個數(shù)據(jù)庫的參數(shù))
    >db2 get dbm cfg
    >db2 get db cfg for 數(shù)據(jù)庫名
    修改參數(shù):
    >db2 update dbm cfg using 參數(shù) 你要的數(shù)
    >db2 update db cfg for 數(shù)據(jù)庫名 using 參數(shù) 你要的數(shù)

    ?

    當?shù)谝粋€用戶連結(jié)到該數(shù)據(jù)庫時會申請一個內(nèi)存緩沖,默認是250頁每頁4k即1M。
    Buffer pool size<4K>? [BUFFPAGE]=250
    修改該值:
    >db2 update db cfg for test using buffpage 你要的數(shù)
    但它的有效還取決于syscat.bufferpools中的npages是否為-1,為-1時它才有效,否則以syscat.bufferpols中的npage為準。
    可用下面的命令看:
    >select * from syscat.bufferpools
    一般此值的設置應為系統(tǒng)內(nèi)存的40%左右,太大時會使系統(tǒng)因動用虛擬內(nèi)存從而太吃力。

    sql語句的優(yōu)化級別:一般取2或5(最高為9)
    Default query optinization class????? <DFT_QUENYOPT>=5
    該值越大優(yōu)化越好,但優(yōu)化所化時間也越長。

    并行性設置:
    Degree=-1 并行性全由操作系統(tǒng)完成。
    當操作系統(tǒng)有并行處理時,Degree=-1
    *****CUP與硬盤的個數(shù)一般為1:4到1:6;

    用戶最大連結(jié)數(shù):
    <MAXAPPLS>=40
    BUFFPAGE與MAXPPLS的關(guān)系:BUFFPAGE>2*MXAPPLS

    文章出處: http://tb.blog.csdn.net/TrackBack.aspx?PostId=290057

    posted on 2007-07-20 15:51 心硯 閱讀(1279) 評論(0)  編輯  收藏 所屬分類: DB

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆分類

    文章分類

    文章檔案

    Forum

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91大神在线免费观看| 国产乱码免费卡1卡二卡3卡| 在线观看人成视频免费无遮挡 | 久久亚洲国产欧洲精品一| 亚洲av色影在线| 亚洲夂夂婷婷色拍WW47| eeuss影院ss奇兵免费com| 免费毛片a线观看| 永久免费观看的毛片的网站| 亚洲色一色噜一噜噜噜| 亚洲人成电影在线观看青青| 日韩免费码中文在线观看| 美女内射无套日韩免费播放| 婷婷亚洲天堂影院| 亚洲图片中文字幕| 在线观看黄片免费入口不卡| 亚洲VA中文字幕无码一二三区| 亚洲偷自拍另类图片二区| 午夜私人影院免费体验区| 久久水蜜桃亚洲av无码精品麻豆| 美景之屋4在线未删减免费| 亚洲一区免费在线观看| 久久精品亚洲福利| 精品亚洲国产成人av| 国产在线观看免费观看不卡| 亚洲成人精品久久| 真人做A免费观看| 亚洲毛片免费观看| 国产va在线观看免费| 亚洲男人的天堂www| 深夜免费在线视频| 亚洲国产精品成人精品无码区| 蜜臀AV免费一区二区三区| 亚洲av无码乱码国产精品fc2| 黄+色+性+人免费| 国产91成人精品亚洲精品| 日韩中文无码有码免费视频| 亚洲春色另类小说| 国产亚洲精品免费| 色吊丝免费观看网站| 亚洲日本精品一区二区|