当前位置: 首页 > 面试题库 >

将视图数据类型定义为VARCHAR2(4000)的函数是否会影响性能?

严稳
2023-03-14
问题内容

我创建了一个返回VARCHAR2变量的函数,它所返回的变量的类型VARCHAR2(200)与函数本身的类型相同。

我还创建了一个视图,将该视图用作其中的列。这会自动将视图中该列的数据类型设置为VARCHAR2(4000)

这会导致性能/存储问题吗?

此外,对我来说,最好将aSUBSTR限制为应该使用的200个字符吗?

Oracle 11g BTW。


问题答案:

即使VARCHAR2(4000)您所做的一切都是使用SQL进行的,即使在任何地方使用都不会引起问题(在这种情况下也很可能不会引起问题),但是一旦开始将数据提取到应用程序中,这可能会很痛苦。应用程序可能别无选择,只能根据假定的一列中字符串的最大长度来分配内存…您可能会以这种方式很快耗尽内存。更不用说GUI会保留和格式化4000个字符,无论该函数返回什么…

要限制视图中列的大小,解决方案就是您已经说过的:如果将函数包装substr()select视图的子句中,则列数据类型将设置为VARCHAR2(200)。对我来说,这似乎是正确的方法。



 类似资料:
  • 问题内容: 如果是这样,为什么呢?我的意思是,tinyint的搜索比int更快吗? 如果是这样,那么实际的性能差异是什么? 问题答案: 是的,根据数据类型,确实会有所不同。 vs.不会在速度上产生明显的差异,但是会在数据大小上产生差异。假设是1个字节,而不是4个字节,则每行保存3个字节。一段时间后加起来。 现在,如果它反对,那么将会有些下降,因为整数值之类的排序操作比字符串值要快得多。 如果它是可

  • 我有一个Oracle表,其中列类型为CLOB。我想保留列顺序并将数据类型更改为VARCHAR2。该列只包含文本。 我得到了一个标准的信息: 我们将不胜感激。我已经在这方面工作了一段时间了。如果你有任何问题请告诉我。

  • 问题内容: 我了解整数和浮点数据类型的存储方式,并且我猜测十进制数据类型的可变长度意味着它的存储方式更像字符串。 使用十进制数据类型并针对它们进行搜索时,这是否意味着性能开销? 问题答案: Pavel说得很对,我只想解释一下。 假设您的意思是与浮点数或定点偏移整数(即,将千分之一的整数存储为整数)相比对性能有影响:是的,对性能有很大影响。PostgreSQL和MySQL的声音用二进制编码的十进制存

  • 问题内容: 在我的公司中,我们有一个包含各种表的遗留数据库,因此包含许多字段。 许多字段似乎都有从未达到的大限制(例如:)。 是否将字段的最大宽度设置为最大宽度或比通常输入的字段大2到3倍会对性能产生负面影响? 一个应如何在性能与字段长度之间取得平衡?有平衡吗? 问题答案: 这个问题有两个部分: 在VARCHAR上使用NVARCHAR是否会损害性能?是的,将数据存储在unicode字段中会使存储需

  • 问题内容: 当我在MySQL中执行此命令时: 它会影响整个引擎还是仅仅是我当前的交易? 问题答案: 在设置问题方式时,它是基于会话的。 https://dev.mysql.com/doc/refman/5.7/zh-CN/server-system- variables.html 据此,以“两者”为范围。这意味着可以为会话设置它: 或全球:

  • 如果我使用CreateCriteria()函数添加了一个条件限制。限制是否将保存在数据库中?提前谢谢!..