【发布时间】:2013-07-23 12:19:10
【问题描述】:
我有一个应用程序 每小时进行大约 20000 次数据操作 DATA-OPERATION 总共有 30 个参数(对于所有 10 个查询)。有些是文本,有些是数字。一些文本参数长达 10000 个字符。
每个数据操作都执行以下操作:
- 单个数据操作,在数据库中插入/更新多个表(大约 10 个)。
- 对于每一个数据操作,我都会使用一个连接,
- 然后我为 DATA-OPERATION 中的每个查询使用新的prepared-statement。
- 每次执行查询时,Prepared-statement 都会关闭。
- 为所有 10 个准备好的语句重复使用连接。
- 数据操作完成后连接关闭。
现在执行这个数据操作,
- 10 个查询,10 个准备好的语句(创建、执行、关闭),1 个 n/w 调用。
- 1 个连接(打开、关闭)。
我个人认为,如果我从以上 10 个查询中创建一个存储过程,那将是更好的选择。
如果是 SP,DATA-OPERATION 将有:
- 1 个连接,1 个可调用语句,1 个 n/w 命中。
我建议过这个,但有人告诉我
- 这可能比 SQL 查询更耗时。
- 它会给数据库服务器增加额外的负载。
我仍然认为SP是更好的选择。请让我知道您的意见。
基准测试是一种选择。将不得不搜索任何可以帮助解决此问题的工具。 任何人也可以为此类问题建议已经可用的基准。
【问题讨论】:
-
数据操作有多少个参数?
-
“这可能更耗时”他们说。如果这是他们唯一关心的问题,那么用基准证明他们是错误的。
-
是的,存储过程是比创建单个数据操作更好的选择
-
目前总共有 30 个参数。有些是文本,有些是数字。一些文本参数长达 10000 个字符。
标签: mysql sql stored-procedures