首页 > 其他分享 >系统网络通信异常Read timed out排查及解决过程

系统网络通信异常Read timed out排查及解决过程

时间:2024-11-01 17:44:28浏览次数:1  
标签:Read 报错 应用 sql timed 执行 out 客户端

用户反馈应用连接数据库经常出现网络通信异常 相关sql语句在数据库在数据库客户端能正常执行,执行时间不到1s 检查数据库参数,运行日志,网络方面,驱动版本都正常 查看应用报错日志,里面有read timd out 报错,一般是连接超时导致的   检查durid连接池配置如下   Druid 连接池connectTimeout: 和socketTimeout参数默认是10s,将这两个参数改成20000之后还是同样报错 最后将connectTimeout: 和socketTimeout改成120000,应用可以正常查询出数据,但执行时间很慢需要45s,而在客户端执行只需要0.2s,可以确认是应用里面sql执行计划不准导致。 收集统计信息,清空执行计划缓存 call sp_clear_plan_cache() 清空缓存之后,应用还是慢,通过下面查找缓存中的执行计划 select * from v$cachepln where upper(sqlstr) like '%SELECT * FROM TEST WHERE ENAME%' alter session set events 'immediate trace name plndump level 150995946,dump_file ''/home/dmdba/new.log''' 应用端执行计划如下: 客户端执行计划如下 慢在嵌套循环,通过添加/*+enable_index_join(0)*/ 让走hash join解决,应用验证之后1s以内出结果 总结:主要原因是sql执行计划和客户端执行计划不一样导致,在应用执行时间过长导致超时报错  

标签:Read,报错,应用,sql,timed,执行,out,客户端
From: https://www.cnblogs.com/fangzpa/p/18520932

相关文章

  • ThreadLocal的使用以及原理
    ThreadLocal的使用以及原理  概要  ThreadLocal是java提供的一个方便对象在本线程内不同方法中进行传递和获取的类。用它定义的变量,仅在本线程中可见和维护,不受其他线程的影响,与其他线程相互隔离。  一、ThreadLocal能解决什么问题?  当涉及一个对象需要在很多......
  • 【Java】ThreadLocal详解
    引言在多线程编程中,如何安全地共享数据是一个重要的课题。Java提供了ThreadLocal类,以便在每个线程中维护线程局部变量,允许每个线程拥有自己的独立变量副本。本文将探讨ThreadLocal的工作原理、使用场景以及一些最佳实践。1.什么是ThreadLocal?ThreadLocal是Java......
  • hotmail和outlook有什么区别
    本文将介绍HotmAIl和Outlook这两个常见的电子邮件服务之间的区别。虽然它们都由Microsoft提供,但它们在一些关键方面存在差异,包括名称、界面、功能和历史。Hotmail是在1996年创建的,是最早的免费Web邮件服务之一。Outlook是一个邮件客户端应用程序,最早是MicrosoftOffice套件的一部......
  • Java多线程--Thread类的那些事3.--线程的6中状态和sleep()和 join()
      一.sleep()方法  首先在Thead类中有一个静态的sleep()方法,可以让线程进入到休眠状态即TEMD-WAITING状  在调用sleep()方法时需要注意的是在哪个线程里面调用sleep()方法,哪个线程就会进入阻塞状态.,在这个线程中的其他线程不会发生阻塞,只有当休眠时间到来这个......
  • Flutter go_router库push导航后,浏览器地址栏的地址不更新的问题
    如果你使用.push()方法进行导航后,浏览器的地址栏的地址并没有更新,那是因为go_router经过了一次变更修改行为导致的。配置下边的GoRouter.optionURLReflectsImperativeAPIs=true;代码就行了。也可以去optionURLReflectsImperativeAPIs看属性说明。原文......
  • 线程池ThreadPoolExecutor配合callable获得线程执行结果
    此处记录使用callable创建线程,使用线程池执行,看下是否有进行线程复用并且FutureTask返回结果线程创建publicclassMyCallableBakeUserimplementsCallable<String>{privateinta;publicMyCallableBakeUser(inta){this.a=a;}@Overrid......
  • 使用ThreadPoolExecutor线程池消化线程执行代码
    此处记录一个使用ThreadPoolExecutor线程池的demo线程代码publicclassExcutorRunnableimplementsRunnable{@Overridepublicvoidrun(){System.out.println(Thread.currentThread().getName()+":线程执行666");try{Thread.......
  • 科普文:软件架构数据库系列之【MySQL:InnoDB预读Ahead-read(线性预读linear read-ahead和
    概叙操作系统文件预读(Prefetching)科普文:软件架构Linux系列之【Linux的文件预读readahead】-CSDN博客前面文章我们从操作系统角度解释了文件预读readahead,指Linux系统内核将指定文件的某区域预读进页(OSpagecache)缓存起来,便于接下来对该区域进行读取时,不会因缺页(pagefault)......
  • 中国积极开展空间探索活动 China has actively carried out space exploration missio
    近年来,中国积极开展空间探索活动,“嫦娥”揽月、“天问”探火、“羲和”逐日、空间站巡天,不断深化人类对宇宙的认知,致力增进人类共同福祉。Chinahasactivelycarriedoutspaceexplorationmissionsinrecentyears,includingthelaunchesofChang'elunarprobes,theMar......
  • Goroutine
    在Go语言中,Goroutine是一种轻量级的并发执行单元,可以理解为Go的“协程”。它由Go运行时管理,用于执行函数或任务。Goroutine的轻量级和高效并发特性使Go能够轻松处理数千甚至数百万个并发任务,适合构建高并发的服务器和网络应用。Goroutine的启动Goroutine通过go关......