打印本文 打印本文 关闭窗口 关闭窗口
Sybase SQL Server 11的内存缓冲区管理和性能调整
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1706  更新时间:2009/4/22 23:09:17  文章录入:mintao  责任编辑:mintao
,0),将指定(999999 + 1) * ( 5000 * 10 power -7)=500个值。 可以通过使用用户自定义类型,使这个范围标准化。例如: 

 

sp_addtype sitekey, numeric(6,0), "identity" 

  把这个类型用于相应的地方,前面的例子中的建表语句将改为如下方式:

 

create table sales_daily 
(stor_id char(4) not null, 
ord_num sitekey, 
ord_amt money null) 

  大的预置数集合可能导致大的断带

  当发生系统故障,如果预置的系数越大,则标识值的断带越大,因为在内存中所有没被使用的预置数都将丢失。例如:如果定义标识列的最大值为 numeric(38,0),即使使用最小的预置系数,系统故障时可能丢失几百万个值。shutdown with nowait 会产生和系统故障同样的断带。

  在某些环境中 dump/load 可能引起标识值的丢失。对象分配管理程序(OAM)的页面上为每一个对象存储了已使用的页面的页号,或已分配但未使用的页面的页号。Backup Server 直接从硬盘读取数据;OAM 页面存有最大的保留的标识值,而已用的最大值和保留的最大值在这个表的内存结构中保持跟踪,当清空内存结构或服务器用不带 nowait 的 shutdown 关掉时,SQL Server 把最大的已用值写回 OAM 页,如果在dump时,最大的保留值和最大的已用值不一样,那么最大的保留值被写出,并在 load 时恢复,导致标识值的丢失。Sybase 正在着手解决这些问题。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口