用户创建的临时数据库通常是由数据库管理员创建的。创建这些数据库通常是为了最大限度地减少系统 tempdb 中的资源争用(如系统目录和日志争用)情况。用户创建的临时数据库与系统 tempdb 非常相似,因为它们:
主要用于创建临时对象
在系统恢复过程中重新创建,而不是恢复
在恢复过程中,临时数据库中的所有对象会在关闭或崩溃前丢失,因为临时数据库会被 model 数据库覆盖。应用于系统 tempdb 的限制也同样应用于用户创建的临时数据库。
在登录期间,系统基于有效的现有绑定,为临时数据库分配会话:
如果绑定到处于联机状态且可用的特定临时数据库,则会将会话分配给该数据库。
如果绑定到缺省组,则使用循环选择策略从该组中选择一个临时数据库。
如果未指定绑定,则从缺省组中选择一个临时数据库。
不管对绑定进行了任何更改,为会话选择的临时数据库在该会话期间保持有效,而不会发生更改。
为临时数据库分配会话后,该会话期间创建的所有临时对象都是在该临时数据库中创建的。在会话或服务器关闭时,将会隐式删除这些对象。在服务器关闭时,将会隐式删除可共享的临时表。
会话可以显式删除临时表。
添加临时数据库
在 Sybase Central 的列表视图中,选择“数据库”|“临时数据库”|“列表视图”。
选择“添加临时数据库”。
将显示“指定名称”窗口。输入要创建的临时数据库的名称,然后单击“下一步”。
将显示“设备信息”窗口。如果不想指定设备,请选择“下一步”。要指定设备,请执行以下操作:
选择“添加”。
将显示“设备大小”屏幕。选择“数据”或“事务日志”以指定设备将存储的内容。
从设备列表中,选择要使用的设备。
选择设备后,请指定临时数据库的大小(以 MB 为单位)。
单击“确定”。
“设备大小”窗口关闭,并返回到“设备信息”屏幕。可以通过重复此过程来添加多台设备。操作完成后,单击“下一步”。
将显示“数据库类型信息”屏幕。选择:
使用覆盖 — 强制 Adaptive Server 接受设备规范,即使这些规范包含同一设备上的数据和事务日志也是如此,而这会危及数据库的最新数据的可恢复性。
用于装载 — 创建只能用于装载数据库转储的临时数据库。
选择“下一步”。
将显示“临时数据库组”屏幕。选择:
无 — 如果不想将 tempdb 与某个组相关联。
缺省 — 如果要将 tempdb 与缺省临时数据库组相关联。这是唯一可用的组。
选择“下一步”。
将显示“摘要”屏幕。检查数据库配置摘要。单击“返回”可以更改任意选项;单击“完成”将返回到 Sybase Central 主窗口。
将显示新创建的临时数据库。
有关多个临时数据库的详细信息,请参见:
Performance and Tuning: Optimizer and Abstract Plans(《性能和调优:优化程序和抽象计划》)中的第 12 章“tempdb Performance Issues”(tempdb 性能问题)
《参考手册:命令》中的 create database 命令
《参考手册:存储过程》中的 sp_tempdb 存储过程