第一次链接数据库很慢

时间:2022-01-23 16:57:51
测试地址:http://demo.jxto.cn/connect/
每次都是4.1秒左右,当链接成功以后,再次刷新就很快能够链接上了。

注:当不进行任何操作(经过测试 大于70秒),再次刷新又会卡4秒。

8 个解决方案

#1


该回复于2014-12-01 11:21:01被管理员删除

#2


缓存?
我觉得程序上的原因可能比较大吧?

#3


引用 2 楼 ky_min 的回复:
缓存?
我觉得程序上的原因可能比较大吧?


http://demo.jxto.cn/connect/ 这个页面没有任何程序,就是单纯的链接了一下数据库。都十分慢,关键连上一次后再次刷新链接就很快。当不进行任何操作(经过测试 大于70秒),再次刷新又会卡4秒。

#4


引用 3 楼 hchab 的回复:
Quote: 引用 2 楼 ky_min 的回复:

缓存?
我觉得程序上的原因可能比较大吧?


http://demo.jxto.cn/connect/ 这个页面没有任何程序,就是单纯的链接了一下数据库。都十分慢,关键连上一次后再次刷新链接就很快。当不进行任何操作(经过测试 大于70秒),再次刷新又会卡4秒。


什么数据库,怎么连的?

#5


很多东西都会这样吧~

以下的说法,我觉得可以说明楼主的问题

数据库连接是有不少开销的, 包括后台数据库引擎等等. 

刚刚关闭程序的时候,加载的那些链接库还在内存里面, 所以再次连接就比较快了.

等过了一段时间之后, 可能这些库就从内存卸载了, 然后再次一一调用就慢了. 

这就跟机器预热一样.

#6


问题找到了,在MSSQLSERVER 的协议 里面启动TCP/IP 然后访问数据库就很快了····但还不知道是怎么原理。

求大神讲解!

第一次链接数据库很慢

#7


图中没启用 TCP/IP 之前你只启用了 Shared Memory。
这是通过共享内存来交换数据。初次连接要分配内存,超时后会释放内存,再连接又要重新分配。
跨进程的内存控制免不了各种等待,所以比较耗时。
而开启TCP/IP之后通过端口传送数据,避免等待,就很快了。

#8


引用 7 楼 avatar_cs2 的回复:
图中没启用 TCP/IP 之前你只启用了 Shared Memory。
这是通过共享内存来交换数据。初次连接要分配内存,超时后会释放内存,再连接又要重新分配。
跨进程的内存控制免不了各种等待,所以比较耗时。
而开启TCP/IP之后通过端口传送数据,避免等待,就很快了。

学习了

#1


该回复于2014-12-01 11:21:01被管理员删除

#2


缓存?
我觉得程序上的原因可能比较大吧?

#3


引用 2 楼 ky_min 的回复:
缓存?
我觉得程序上的原因可能比较大吧?


http://demo.jxto.cn/connect/ 这个页面没有任何程序,就是单纯的链接了一下数据库。都十分慢,关键连上一次后再次刷新链接就很快。当不进行任何操作(经过测试 大于70秒),再次刷新又会卡4秒。

#4


引用 3 楼 hchab 的回复:
Quote: 引用 2 楼 ky_min 的回复:

缓存?
我觉得程序上的原因可能比较大吧?


http://demo.jxto.cn/connect/ 这个页面没有任何程序,就是单纯的链接了一下数据库。都十分慢,关键连上一次后再次刷新链接就很快。当不进行任何操作(经过测试 大于70秒),再次刷新又会卡4秒。


什么数据库,怎么连的?

#5


很多东西都会这样吧~

以下的说法,我觉得可以说明楼主的问题

数据库连接是有不少开销的, 包括后台数据库引擎等等. 

刚刚关闭程序的时候,加载的那些链接库还在内存里面, 所以再次连接就比较快了.

等过了一段时间之后, 可能这些库就从内存卸载了, 然后再次一一调用就慢了. 

这就跟机器预热一样.

#6


问题找到了,在MSSQLSERVER 的协议 里面启动TCP/IP 然后访问数据库就很快了····但还不知道是怎么原理。

求大神讲解!

第一次链接数据库很慢

#7


图中没启用 TCP/IP 之前你只启用了 Shared Memory。
这是通过共享内存来交换数据。初次连接要分配内存,超时后会释放内存,再连接又要重新分配。
跨进程的内存控制免不了各种等待,所以比较耗时。
而开启TCP/IP之后通过端口传送数据,避免等待,就很快了。

#8


引用 7 楼 avatar_cs2 的回复:
图中没启用 TCP/IP 之前你只启用了 Shared Memory。
这是通过共享内存来交换数据。初次连接要分配内存,超时后会释放内存,再连接又要重新分配。
跨进程的内存控制免不了各种等待,所以比较耗时。
而开启TCP/IP之后通过端口传送数据,避免等待,就很快了。

学习了