oracle - 如果我不使用随机数据对 Oracle 11g 进行压力测试有什么关系吗

标签 oracle load-testing stress-testing

我们需要对 Oracle 数据库进行大约 500 万行插入的压力测试。根据我们的 DBA 的说法,唯一需要不同的列是主键或外键……所有其他列都可以相同。他说,如果我们这样做,那么 Oracle 在插入数据时将不会进行任何类型的缓存。

我只是想确保他是对的,并且通过这样做,压力测试结果几乎与使用随机数据一样准确。感谢您的帮助。

最佳答案

在极少数情况下,DBA 是正确的。如果您的所有查询都是基于主键和外键的查找,那么它们可能是正确的。在过去,当基于规则的优化器为王时,数据就不那么重要了。是的,记录很重要,但数据并不重要。

但在现实世界中,情况并非如此。你还有其他指标吗?那么数据很重要。您是否会加入除主键/外键之外的其他内容?那么数据很重要。你的字符串都是1字节还是空?我对此表示怀疑,这些变长字段的大小可能会影响IO量。基本上,对于非平凡应用程序中的任何非平凡模式,拥有“现实”数据可能很重要。 Oracle 优化器在确定如何执行查询时会考虑多种统计信息。

在此负载测试中您真的只进行插入吗?这有点傻。以现代标准来看,500 万条记录简直就是小巫见大巫。台式机通常只需几秒钟即可完成此操作。即使是简单的应用程序也会执行一些选择来进行查找,或者根据非键值获取一组记录。

您似乎足够聪明,能够评估 DBA 的声明。如果你能让他把这个写下来,签字,并在他的负载测试想法没有按预期工作时让他承担责任,那就太好了。不过,听起来你是负责这项测试的人。

如果我处于您的位置,我会希望使用尽可能最准确的数据进行负载测试。从生产系统或已知的测试数据集复制是比“随机”更好的选择,比“除主键外的空值”方法好得多。

关于oracle - 如果我不使用随机数据对 Oracle 11g 进行压力测试有什么关系吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11766680/

相关文章:

sql - 在 SQL 中使用 CHECK 选项

sql - 获取每个subscriber_id 每月的最大(日期)记录。每月不返回重复的 ID

sql - 监视 Delphi 应用程序执行的 SQL 查询

jmeter - 从机请求成功,但主机响应正文为空

java - 在对网站进行负载测试时我应该忽略 Java 脚本吗?

visual-studio - Visual Studio 中的压力测试

java - 3DES,Java代码结果与3des在线工具和oracle数据库脚本产生不同的结果

使用生产数据的瓶颈性能测试应用程序

java - Wiiremock http 失败错误

python - 使用 xmlrpc 与 openerp 的并发连接被拒绝(通过 python)