CLOB / TEXT的性能如何?

时间:2009-04-02 20:08:29

标签: sql database performance

我们有一个数据库,在整个架构中大量使用CLOB / TEXT数据类型。在昨天对具有CLOB类型的多个表运行大量查询之后,我得出的结论是,只要SELECT子句中有CLOB(即使值为NULL / empty),查询就会受到巨大的性能影响。

我们有一个客户端服务器应用程序(不是基于Web的)部署在客户的站点上。此外,我们在后端支持多个数据库,因此我们不可能在代码中进行特定于数据库的优化。

离开CLOB并不是一个真正的选择。

据我所知,CLOB / TEXT数据类型需要完成的大部分优化都在数据库服务器上。我应该向客户传达什么样的建议呢?

作为代码中的开发人员,我可以做些什么来帮助加快查询速度?

2 个答案:

答案 0 :(得分:1)

性能问题的严重程度将取决于数据库。但是,通常您会期望大多数实现将CLOB数据存储在磁盘上与固定宽度字段在物理上分开的位置。

出于这个原因,只有在必要时才应谨慎使用CLOB。如果你必须使用一个,请确保你不需要同时带回很多。当您只需要一次检索一个时,例如当您在客户端中查看完整记录时,它们是最好的。

答案 1 :(得分:0)

正确答案需要更多信息。特别是,您可以发布“慢”查询的示例,以及它们访问的表的结构吗?

尽管如此,一般来说CLOB不应该自动导致性能问题。

使用条件的查询会很慢,因为CLOB通常无法编入索引。如果要传输的数据总量变大,则检索它们会产生影响。但除了这些要点之外,CLOB不应该对性能产生重大影响(即只是在表中有一个CLOB不应该受到伤害)。

这些只是一般性的观察。详细信息当然取决于您使用的DBMS及其配置。