我有一个现有的应用程序,它有许多运行如下的SQL Server存储过程。这些存储过程应用于数据文件,并根据某些业务规则进行计算。
1) Pre-process
2) Process
3) Post-Process
在预处理过程中,我们正在创建'n'否。具有聚簇列存储索引的表的位置。当作业开始时,使用聚簇列存储索引创建表,但是一旦作业完成,索引就会消失。 (这仅适用于大型输入数据文件。)
当我在一个小数据文件上运行作业时,会在表上创建聚簇列存储索引,即使在作业完成后它也存在。
注意: - 当我为小型和大型数据文件执行时,代码是相同的。
如果您遇到类似的问题,有人可以分享您的想法吗?
答案 0 :(得分:0)
有两件事会导致已完全建立的指数从表中“消失”:
就是这样。你回答的就是上面两个中的一个。
我知道这不是你想要的答案,但它肯定是答案。某处你的代码失败了,这就是索引现在消失的原因。
Sql Server不是一个slapdash RDBMS - 如果它只是随意地随机删除了索引,那么你知道我们将全力以赴。你自己承认,你的代码很复杂。
我们的DataWarehouse会定期删除和重建所有类型的索引 - 它们“丢失”它们的唯一时间是我们的代码中的错误。