SYBASE 多临时库使用


在解决江西数据库问题时,发现 tempdb  数据库资源争用比较严重,锁比较多,根据余头儿和赵哥的建议,采用多临时库缓解 tempdb 的压力,对 NP SYM TJFX  应用和第三方公司帐号 jdhb 单独绑定临时库。
临时数据库的作用:
临时库是一种全服务器范围的资源 , 主要用于处理排序、创建工作表、重新格式以及存储用户创建的临时表和索引
临时库相关的性能问题:
1、大量使用临时数据库中的对象导致从数据高速缓存中清除其它页。
2、因锁定系统表而导致经常短暂阻止用户查询创建临时表。
3、临时数据库排序缓慢 , 且数据库查询性能较不稳定。
4、临时数据库经常处于填满状态 , 导致向用户发出错误消息用户必须等到空间可用时才能重新提交查询。
如何创建临时库:
use master
go

-- 创建临时库 TEMPDB01  设备
disk init  
name="DEV_TEMPDB01_DAT01",
physname="/home/sybase/installed/data6000/DEV_TEMPDB01_DAT01.dat",
size="5G"
GO

disk init
name="DEV_TEMPDB01_LOG01",
physname="/home/sybase/installed/data6000/DEV_TEMPDB01_LOG01.dat",
size="2G"
Go


create temporary database TEMPDB01
on DEV_TEMPDB01_DAT01="5G"
log on DEV_TEMPDB01_LOG01="2G"
GO

如何绑定临时库:
1、根据登陆名绑定到临时库
-- 绑定用户
sp_tempdb "bind", "lg", "sa", "DB", "TEMPDB02"

2、根据应用程序绑定临时库
-- 绑定统计分析
sp_tempdb "bind","ap","NP-FY-TJFX","DB","TEMPDB01"
Go
选择临时库规则:
Adaptive Server  根据以下规则为会话选择临时数据库 :
1 如果登录名已存在绑定 , 则使用该绑定。
2 如果已指定应用程序名且其已存在绑定 , 则使用该绑定。
3  如果  Adaptive Server  未发现绑定 , 则使用循环方案从缺省组中分配一个临时数据库。
如何查看绑定:
sp_tempdb who,"TEMPDB01"
sp_tempdb who,"TEMPDB02"

猜你喜欢

转载自blog.csdn.net/wangzhen3798/article/details/79238125