写了一个存储过程,是一系列查询、处理然后入库,第一次执行的数据比第二执行的数据多一半,为什么,第二次执行的速度反而比第一次慢2倍多呢?(同一台服务器,历史数据同样多)
系统中有另外的大量的操作在执行
系统中有另外的大量的操作在执行
有没有用线程来执行~~~~~~~~~~~
写了一个存储过程,是一系列查询、处理然后入库,第一次执行的数据比第二执行的数据多一半,为什么,第二次执行的速度反而比第一次慢2倍多呢?(同一台服务器,历史数据同样多)
建议在存储过程里加个日志,把执行的时间记录到数据库的某个日志表中,分析一下速度慢在哪里,然后进行针对性的优化,第二次比较第一次慢,有可能资源占用较多形成的
建议调试一下存储过程,一步一步跟踪,查看每个步骤的数据是否正确,查看两次运行的时间差在那里,然后再修改。
执行速度变慢,是否是机器其他大量操作造成的影响,另外查询的效率跟查询语句的针对性有关,也有可能第二次数据查询出的符合条件的数据比较多,然后处理和入库时间就拉长了。
会不会是入库的时候因为索引关系导致第二次插入会慢?
速度慢,说明系统资源被另外的不明东西在占用,建议检查下有没有其他的线程在同时运行中。
看一下是不是其他的线程占用了,然后再简化一下你的存储过程