• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • sybase 臨時數據庫

    發表于:2008-08-19來源:作者:點擊數: 標簽:數據庫sybaseSYBASESybase
    缺省情況下,tempdb 數據庫 是放置在master設備上,容量為2M,而臨時數據庫是活動最為平凡的數據庫常常被用來排序、創建臨時表、重格式化等操作,所以tempdb的優化應該受到特別的關注。本篇文章目的在于使你掌握臨時數據庫的優化策略以及臨時表的優化使用。本
    缺省情況下,tempdb數據庫是放置在master設備上,容量為2M,而臨時數據庫是活動最為平凡的數據庫常常被用來排序、創建臨時表、重格式化等操作,所以tempdb的優化應該受到特別的關注。本篇文章目的在于使你掌握臨時數據庫的優化策略以及臨時表的優化使用。本文中,你將以調整臨時庫的位置開始,有步驟的完成臨時數據庫的優化,并在此過程中了解到優化臨時數據庫和臨時表的一些方法和規則。
    實驗環境的要求:你應具有系統管理員的權限,系統中有auths和article表。
    步驟:
    第一步:調整臨時庫的位置
      tempdb數據庫缺省放在master設備上,將臨時數據庫發在分離的設備上是更可取的。
    1)  初始化一個用來存放臨時數據庫的設備
    disk init
    name="tempdb_dev",
    physname="d:\sybase\example\tempdb.dat",
    vdevno=13,
    size=15360
    (注意:如果將tempdb數據庫放在多個設備上,需初始化多個數據庫設備)
    2)將臨時數據庫擴展到該一個設備上
        alter database tempdb on tempdb_dev=30
    3)打開tempdb數據庫,從段上刪除master設備
    sp_dropsegment "default",tempdb,master
    sp_dropsegment logsegment,tempdb,master
    4)發出如下命令,檢查default段中是否不再包含master設備
           select dbid,name,segmap from sysusages,sysdevices
    where sysdevices.low<=syusages.size+vstart
    and sysdevices.high>=sysusages.size+vstart-1
    and dbid=2
    and(status=2 or status=3)
    說明:若將臨時數據庫放在多個磁盤設備上,可以更好的利用并行查詢特性來提高查詢性能。
    第二步:將臨時數據庫與高速緩沖進行綁定。
      由于臨時表的創建、使用,臨時數據庫會頻繁地使用數據緩存,所以應為臨時數據庫創建高速緩存,從而可以使其常駐內存并有助于分散I/O:
    1、創建命名高速緩存
    sp_cacheconfig “tempdb_cache”,”10m”,”mixed”
    2、重新啟動server
    3、捆綁臨時數據庫到tempdb_cache高速緩存
    sp_bindcache “tempdb_cache”, tempdb
    4、若有大的I/O,配置內存池
    第三步:優化臨時表
         大多數臨時表的使用是簡單的,很少需要優化。但需要對臨時表進行復雜的訪問則
    應通過使用多個過程或批處理來把表的創建和索引分開。以下兩種技術可以改善臨時表的優化
    slash;         在臨時表上創建索引
    1)  臨時表必須存在
    2)  統計頁必須存在(即不能在空表上創建索引)
    slash;         把對臨時表的復雜的使用分散到多個批處理或過程中,以便為優化器提供信息
    下面的這個過程需要進行優化:
    create proc base_proc
    as
    select * into #huge_result from auths
    select * from article, #huge_result where article.author_code=
    #huge_result.author_code and sex=”0”
    使用兩個過程可以得到更好的性能
    1)create proc base_proc
    as
    select *
    into #huge_result
    from auths
    exec select_proc
    2)  create proc select_proc
           as
    select *       from article,#huge_result
    where  article.author_code=#huge_result.author_code and sex=”0”
    說明:在同一個存儲過程或批處理中,創建并使用一個表時,查詢優化器無法決定這個表的大小。
    結論:通過本實驗我們知道,臨時數據庫經過優化可以極大的提高系統性能。實際工作中,必須考慮具體應用的情況,需長時間經驗的積累。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>