我有一个参考代码表,只能在正常使用时读取,并且只能针对产品更改(每月)进行更新。

在create table语句中应该使用什么表锁定?

我之所以假设为ALLPAGES,是因为这样可以使ASE需要管理的读取锁定总数降低。但是我从该项目的另一位开发人员那里获得了不同的“建议”。

我看到相关数据库中使用ALLPAGES的其他参考表;但它们已从12.5升级,可能只是当时的保留。

该表不是很宽,它有两个数字id列,一个char(1)列,并且聚集在两个数字上。

有帮助吗?

解决方案

我只有一个明显的答案-首先运行sp_object_stats并选择锁定方案。

其他提示

如果参考表仅用于读取,则“全页”锁定最好,因为它需要的锁数量最少(如您所说),并且在读取数据时进程获取的“共享锁”上没有冲突。

仅为您提供有关性能的其他提示:始终尝试通过关联的子查询使用引用表,以利用子查询缓存的优势。还要记住,子查询缓存仅在优化器未将子查询展平并且未将其转换回常规联接时才发生。确保子查询不扁平的技巧是在属性上使用聚合函数,例如max(attr)。max函数将是虚拟的,没有任何“分组依据”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top