TimesTen臨時(記憶體)空間使用和調整臨時(記憶體)空間

tangyunoracle發表於2014-05-25
在TimesTen運維及專案前期規劃過程中,需要對TimesTen臨時空間進行計算,下面根據官方建議結合運維經驗規劃臨時空間的分配:
1、官方對臨時空間分配的計算方法:
TempSize =  14 MB + ceiling(PermSize / 8)
根據個人的運維經驗,官方的計算方式比較適合於記憶體資料庫大小在10~40GB比較合適,如果記憶體庫分配較小或較大時建議做稍微調整。
當記憶體資料庫分配小於10GB時,建議:TempSize =  200 MB + ceiling(PermSize / 8)
當記憶體資料庫分配大於40GB時,建議根據應用需求將TempSize調整在5~6GB左右即可,分配太大隻會浪費記憶體空間。

2、調整臨時空間分配
TimesTen對臨時空間的調整是比較麻煩的,需要重新將記憶體庫解除安裝後修改sys.odbc.ini檔案再重新裝載才能有效。詳細操作方式如下:
vi sys.odbc.ini
TempSize=64  ####修改TempSize引數的大小,值得慶幸的是TempSize是可以調大也可以調小的,該引數的單位是MB。
$ ttadmin -ramunload $DSN
Command> dssize m;

  PERM_ALLOCATED_SIZE:      128
  PERM_IN_USE_SIZE:         6.4296875
  PERM_IN_USE_HIGH_WATER:   6.4296875
  TEMP_ALLOCATED_SIZE:      64
  TEMP_IN_USE_SIZE:         8.5068359375
  TEMP_IN_USE_HIGH_WATER:   8.5693359375

$ ttadmin -ramload $DSN

操作非常簡單,就是需要停止所有的業務,需要業務中斷時間視窗。

3、關於TimesTen臨時空間
問1、有辦法釋放臨時空間的使用嗎?
答:沒有辦法,重啟記憶體資料庫Data Store是唯一的辦法。

問2、SQL commands會一直在臨時(記憶體)空間儲存和自動管理麼?
答:是的,command cache就是一個SQL commands使用臨時(記憶體)空間儲存和自動管理的例子。

問3、有辦法減少臨時(記憶體)空間的使用麼?
答:總的來說是可以的,TimesTen其實也是和Oracle一樣透過唯一鍵值的方式進行識別的,透過繫結變數的方式可以減少硬編譯。使用繫結變數可以對command cache重複利用,減少臨時(記憶體)空間的使用。

問4、PrivateCommands=1是否會比PrivateCommands=0消耗更多的臨時(記憶體)空間?
答:總的來說是可以的,如果有多個連線使用相同的SQL語句將會有一個在command cache中為每個SQL語句保留獨特的副本。
0 (default) - Commands are shared with other connections.1 - Commands are not shared with any other connection.

問6、如果連線數超出設定的最大連線數時,是否會消耗更多的臨時(記憶體)空間?
答:是的,連線數是由閂鎖進行管理,如果超過了最大連線數,會由閂鎖進行管理,而不單單是作業系統的提示資訊,而閂鎖正是由臨時(記憶體)空間進行管理。自然也會影響系統的效能。值得注意的是,從11.2.2.x版本開始,超過最大連線數將會報超出最大連線數的錯誤,而不是由閂鎖進行管理。

問7、有沒有TimesTen的工具或者儲存過程可以查詢臨時(記憶體)空間的使用情況?
答:沒有,沒有簡單的工具可以查詢臨時(記憶體)空間的使用;只能透過ttracemon或dsmap工具協助分析,也可以透過monitor表和dssize或者ttSQLCmdCacheInfoGet進行參考分析。
1、分析Monitor表中的資訊和Command Cache資訊:
./ttIsql -connstr "dsn=" -e "monitor; dssize; call ttSQLCmdCacheInfoGet; exit;"
./ttIsql -connstr "dsn=" -e "dsize;exit;"
2、使用ttTraceMon抓取SQL及標頭檔案資訊:
./bin/tttracemon
level sql 5
level heap 5
outfile ./
3、使用dsMap工具分析
./ttIsql "dsn=" (to get shmid)
./unsupported/dsmap -all -shmid

========================End=======================================

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

相關文章