程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> Sybase臨時數據庫tempdb

Sybase臨時數據庫tempdb

編輯:SyBase綜合文章

本文中,你將以調整臨時庫的位置開始,有步驟的完成臨時數據庫的優化,並在此過程中了解到優化臨時數據庫和臨時表的一些方法和規則。

實驗環境的要求:你應具有系統管理員的權限,系統中有auths和article表。

步驟:

第一步:調整臨時庫的位置

tempdb數據庫缺省放在master設備上,將臨時數據庫發在分離的設備上是更可取的。

1)初始化一個用來存放臨時數據庫的設備

diskinit

name="tempdb_dev",

physname="d:\Sybase\example\tempdb.dat",

vdevno=13,

size=15360

(注意:如果將tempdb數據庫放在多個設備上,需初始化多個數據庫設備)

2)將臨時數據庫擴展到該一個設備上

alterdatabasetempdbontempdb_dev=30

3)打開tempdb數據庫,從段上刪除master設備

sp_dropsegment"default",tempdb,master

sp_dropsegmentlogsegment,tempdb,master

4)發出如下命令,檢查default段中是否不再包含master設備

selectdbid,name,segmapfromsysusages,sysdevices

wheresysdevices.low<=syusages.size+vstart

andsysdevices.high>;=sysusages.size+vstart-1

anddbid=2

and(status=2orstatus=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;把對臨時表的復雜的使用分散到多個批處理或過程中,以便為優化器提供信息。

下面的這個過程需要進行優化:

createprocbase_proc 

as

select*into#huge_resultfromauths

select*fromarticle,#huge_resultwherearticle.author_code=

#huge_result.author_codeandsex=”0”

使用兩個過程可以得到更好的性能

1)

cre
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved