1

有两张桌子。第一个是事实表,大约 1 亿行。另一个是只有大约 100 行的维度表。我在事实表上创建了位图连接索引来优化查询。

但是,当我在维度表中插入几行时,数据库会挂起。

有谁知道可能是什么原因?

4

2 回答 2

4

位图索引是一个矩阵,每个不同的值对应一列,索引表中的每条记录对应一行。同样的原则也适用于位图连接索引:在 DIMENSION 表中,每个不同的值对应一列,在 FACT 表中对应一行。

从中可以看出,在 DIMENSION 表中插入一行将在索引中生成 1 亿个条目。那将需要很长时间。

你说你正在插入“几行”。所以,老实说,您认为生成所有这些条目的合理时间是多少?

这是位图索引的权衡:它可以节省大量查询时间,但维护开销非常高。因此,我们需要在部署位图索引之前仔细考虑。有时可以降低这些成本,但这取决于具体情况。

位图连接索引还有一件事要记住,这似乎也可能导致服务器挂起:

“使用位图连接索引时,不同事务只能同时更新一张表。”

您应该阅读文档。 了解更多。

于 2012-01-11T09:57:16.007 回答
0

加载大量行时,位图索引确实有相关的性能损失。要获得您正在寻找的效率,只需将索引标记为不可用,加载您的记录,然后重建索引。您应该看到加载时间随着您谈论的数据量的增加而改善。

于 2012-01-15T20:40:17.253 回答