在解决江西数据库问题时,发现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"