有两张桌子。第一个是事实表,大约 1 亿行。另一个是只有大约 100 行的维度表。我在事实表上创建了位图连接索引来优化查询。
但是,当我在维度表中插入几行时,数据库会挂起。
有谁知道可能是什么原因?
有两张桌子。第一个是事实表,大约 1 亿行。另一个是只有大约 100 行的维度表。我在事实表上创建了位图连接索引来优化查询。
但是,当我在维度表中插入几行时,数据库会挂起。
有谁知道可能是什么原因?
位图索引是一个矩阵,每个不同的值对应一列,索引表中的每条记录对应一行。同样的原则也适用于位图连接索引:在 DIMENSION 表中,每个不同的值对应一列,在 FACT 表中对应一行。
从中可以看出,在 DIMENSION 表中插入一行将在索引中生成 1 亿个条目。那将需要很长时间。
你说你正在插入“几行”。所以,老实说,您认为生成所有这些条目的合理时间是多少?
这是位图索引的权衡:它可以节省大量查询时间,但维护开销非常高。因此,我们需要在部署位图索引之前仔细考虑。有时可以降低这些成本,但这取决于具体情况。
位图连接索引还有一件事要记住,这似乎也可能导致服务器挂起:
“使用位图连接索引时,不同事务只能同时更新一张表。”
您应该阅读文档。 了解更多。
加载大量行时,位图索引确实有相关的性能损失。要获得您正在寻找的效率,只需将索引标记为不可用,加载您的记录,然后重建索引。您应该看到加载时间随着您谈论的数据量的增加而改善。