我创建了超过500个包含几何列的表
插入数据后创建空间索引需要更多时间,如何在几秒钟内为所有表创建空间索引,
有没有其他方法可以加快空间索引的创建速度?
答案 0 :(得分:0)
你想加快什么?创建空间索引(= CREATE INDEX命令)?或者对表的插入/更新。那些桌子有多大?您的业务流程可以接受多长时间?
索引通常仅在初始创建和填充空间表时创建一次。除非您的应用程序是以短间隔插入大量数据的应用程序,或者是跟踪移动对象的应用程序,否则无需在初始创建后重建索引。它们显然是自动维护的。
至于构建空间索引的时间,显然比在相同数量的名称上构建索引需要更长的时间(有时是显着的)。显然,你的桌子越大,所用的时间就越长。再说一次,如果你认为你可以在几秒钟内建立500个索引(空间或非空间),即使你使用非常强大的硬件并且表是空的,你也会被迷惑。
有两种方法可以使索引构建花费更少的时间:
1)对于大型表,对它们进行分区并并行进行构建。只有拥有分区选项(仅在EE中可用)才有可能。然后,这只适用于大型表 - 即50 mio行甚至更多。在小桌子上没什么意义。
2)对于大量小型表,只需并行执行构建,即同时运行多个索引创建。使用数据库的调度程序(DBMS_SCHEDULER)来编排它。
如果您追求的是如何加速数据摄取(移动对象,跟踪......),那么您需要更多地了解您的工作流程。