Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 将表的顺序设置为非常大的值(如1000万)可以吗?_Database_Performance_Oracle - Fatal编程技术网

Database 将表的顺序设置为非常大的值(如1000万)可以吗?

Database 将表的顺序设置为非常大的值(如1000万)可以吗?,database,performance,oracle,Database,Performance,Oracle,是否存在任何性能影响或任何类型的问题? 我这样做的原因是,我们正在使用类似的表在两组数据库之间进行一些同步,我们希望在同步数据时避免重复的PK错误。是的,没关系 注意:如果您有性能问题,可以在创建序列时使用缓存选项: 指定数据库预先分配并保留在内存中的序列值的数量,以便更快地访问。此整数值可以包含28位或更少的数字。此参数的最小值为2。对于循环的序列,该值必须小于循环中的值数。缓存的值不能超过给定序列号循环中的值。因此,缓存允许的最大值必须小于以下公式确定的值: 如果发生系统故障,则未在提交的D

是否存在任何性能影响或任何类型的问题? 我这样做的原因是,我们正在使用类似的表在两组数据库之间进行一些同步,我们希望在同步数据时避免重复的PK错误。

是的,没关系

注意:如果您有性能问题,可以在创建序列时使用缓存选项:

指定数据库预先分配并保留在内存中的序列值的数量,以便更快地访问。此整数值可以包含28位或更少的数字。此参数的最小值为2。对于循环的序列,该值必须小于循环中的值数。缓存的值不能超过给定序列号循环中的值。因此,缓存允许的最大值必须小于以下公式确定的值:

如果发生系统故障,则未在提交的DML语句中使用的所有缓存序列值都将丢失。丢失值的潜在数量等于CACHE参数的值。

是的,可以

注意:如果您有性能问题,可以在创建序列时使用缓存选项:

指定数据库预先分配并保留在内存中的序列值的数量,以便更快地访问。此整数值可以包含28位或更少的数字。此参数的最小值为2。对于循环的序列,该值必须小于循环中的值数。缓存的值不能超过给定序列号循环中的值。因此,缓存允许的最大值必须小于以下公式确定的值:


如果发生系统故障,则未在提交的DML语句中使用的所有缓存序列值都将丢失。丢失值的潜在数量等于CACHE参数的值。

当然。你打算做的实际上是一种相当普遍的做法。只需确保客户端代码中用于保存ID的变量足够大,即使用long而不是int即可。你打算做的实际上是一种相当普遍的做法。只需确保客户端代码中用于保存ID的变量足够大,即使用long而不是int即可。最近,我们在创建包含真正大种子的表时遇到的唯一问题是,我们试图与我们无法控制的系统进行接口。该系统显然是以char6字段的形式读取我们的ID,所以当我们发送第10000000行时,它将无法写入


就性能而言,我们没有发现在使用大ID号方面存在任何问题。

最近,我们在创建具有真正大种子的表时遇到的唯一问题是,我们试图与我们无法控制的系统进行接口。该系统显然是以char6字段的形式读取我们的ID,所以当我们发送第10000000行时,它将无法写入


就性能而言,我们没有发现使用大ID号会对我们造成任何问题。

我们没有看到任何性能影响。我经常大量增加序列。如果您需要将数据回填到表中,那么这些间隙非常有用


我们唯一一次遇到问题的时候是在一个特定的客户端程序上,一个非常大的序列超过了MAXINT。序列正常,但在客户端应用程序中转换为整数开始失败!在我们的例子中,重构表中的ID列并重新运行很容易,但回想起来,如果表的排列方式不同,这可能会是一个混乱的局面

没有我们看到的性能影响。我经常大量增加序列。如果您需要将数据回填到表中,那么这些间隙非常有用


我们唯一一次遇到问题的时候是在一个特定的客户端程序上,一个非常大的序列超过了MAXINT。序列正常,但在客户端应用程序中转换为整数开始失败!在我们的例子中,重构表中的ID列并重新运行很容易,但回想起来,如果表的排列方式不同,这可能会是一个混乱的局面

如果您要同步两个表,为什么不更改PK种子/增量量,以便在添加新PK时一切都能自行处理

假设您必须同步10个不同数据库中10个患者表的数据。 我们还可以说,最终所有数据库都必须同步到总部的一个病人表中

每行将PK增加10,但确保每个数据库的最后一位数字不同

DB0 10,20,30。。 DB11,21,31。。 ..... DB9 19,29,39

当一切都被合并时,就保证没有冲突


这很容易扩展到n个数据库表。只需确保您的PK密钥类型不会溢出。我认为BigInt对您来说已经足够大了…

如果您要同步两个表,为什么不更改PK种子/增量量,以便一切都能正常进行 添加新PK时f本身

假设您必须同步10个不同数据库中10个患者表的数据。 我们还可以说,最终所有数据库都必须同步到总部的一个病人表中

每行将PK增加10,但确保每个数据库的最后一位数字不同

DB0 10,20,30。。 DB11,21,31。。 ..... DB9 19,29,39

当一切都被合并时,就保证没有冲突

这很容易扩展到n个数据库表。只需确保您的PK密钥类型不会溢出。我想BigInt对你来说足够大了

(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)