每当用户点击GetReport
按钮时,都会向服务器发出请求,在后端形成SQL,并与Database建立连接。执行函数ExecuteReader()
时,它会以不同的时间响应返回数据。
生产环境中有12台服务器,设置是这样的,当后端超过60秒没有响应时,连接将被删除,因此“UI”上会出现空白屏幕。
在我的代码中,SQL形成并建立连接,并且当执行ExecuteReader()
函数时,它在60秒的间隔后返回数据,其中根据服务器中的设置,连接被删除并因此导致出现空白屏幕。
如果ExecuteReader()
函数在60秒内返回数据,则该功能正常。问题是仅当ExecuteReader()
函数在60秒内未检索到数据时才会出现问题。
问题是,ExecuteReader()
函数会在2秒内返回数据,有时为同一个SQl,有时需要2分钟才能检索数据。
请说明为什么同一查询在不同时间间隔内返回数据存在差异,以及我应该如何处理这种情况,因为我们由于安全问题而无法增加生产中的响应时间。
代码位于vb.net
答案 0 :(得分:0)
你自己说:
我应该如何处理这种情况,因为我们由于安全问题而无法增加生产中的响应时间。
你无能为力
但是,如果您突然获得修改正在运行的查询的权限,或重新配置生产系统的资源配置,请在此处回复执行计划的屏幕截图,我们可以告诉您任何潜在的性能瓶颈。
丹的评论几乎涵盖了为什么数据库查询可能会很慢;通常类似的原因,为什么YouTube在晚上7点缓慢缓冲 - 父母在6点钟下班回家,孩子们在一小时前尖叫他们想要去YouTube,而父母拼命想让孩子参与更具教育性或体育活动的东西,父母终于放弃并想要一些平静和安静:) - 您和YouTube之间整个链中的资源供应/供需