session marked for kill oracle数据库存储过程执行慢时如何优化?
oracle数据库存储过程执行慢时如何优化?
解决方案:您需要根据查询条件为您的表设计相应的索引。有时可以根据需要为一个表构建多个索引。然后再执行一次,你会发现它过去需要30秒,但现在可以在几分钟内完成,这与使用光标无关。游标的使用完全取决于应用程序的需要。我相信你不会选择使用光标,如果你不能使用它们。一般来说,只有在没有办法的时候才选择游标。查询速度慢的原因是,如果在存储过程中执行查询,如果没有索引,它将逐个搜索并扫描80多万条数据。在完成搜索之前,您不会看到结果。但是你在外面执行得很快的原因是PLSQL会先检查几条数据,然后先返回给你,所以你会马上看到结果,但事实上,查询没有结束并不容易。如果你在有很多数据的时候把它拉下来,你就会很慢地发信。事实上,调查过程还没有结束。总之,编写存储过程的第一步是编写存储过程,第二步是优化存储过程。否则,当你有大量数据时,如果你的程序写得不好,问题就会立即暴露出来
test data test statement update user set age=3 where name=“weikaixxxxx”添加存储过程。在MySQL控制台上,delete$$create procedure add_utest(在age1 int中,在name1 char(12))begin update user set age=age1 where name=name1 end$$timer procedure:后跟方法名(in表示传入的值,中间是参数名,最后是数据类型)。开始:执行开始结束$$:结束开始和结束。中间是要执行的SQL语句。注意,我在参数名后面加了1。如果它与字段名同名,则速度会非常慢。Drop procedure addTest view存储过程show procedure status where DB=“Test”DB=:数据库名称Test存储过程调用addTest(1,“weikaixxxxx”)20次,取最大执行时间。每次运行它时,都必须修改年龄。否则,如果不实现更新,就无法实现目标。添加存储过程之前的执行时间是1.024秒。添加存储过程后,执行时间为1.082。存储过程的执行速度基本相同,但不需要编译步骤,节省了计算资源。也许测试语句不够复杂,但是实际的业务逻辑有多复杂呢?所以我不做非常复杂的存储过程测试,没有实际效果。如果你知道什么场景很适合老板使用,请不要犹豫给我提建议!互联网上的许多人说,不建议使用存储过程,因为它们很难维护。---------------------原文:https://blog.csdn.net/weikaixxxxxx/article/details/86526421
session marked for kill plsql执行快java执行慢 存储过程怎么执行
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。