Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何减少远程处理SQL Server时的响应时间?_Sql Server_Vb.net_Ado.net - Fatal编程技术网

Sql server 如何减少远程处理SQL Server时的响应时间?

Sql server 如何减少远程处理SQL Server时的响应时间?,sql-server,vb.net,ado.net,Sql Server,Vb.net,Ado.net,我已经创建了一个vb.net应用程序,它在internet上的远程位置使用SQL Server数据库 有10个vb.net客户端同时工作 问题在于插入新行或从数据库检索行时发生的延迟时间,表单在处理数据库时似乎冻结了一段时间,我不想使用后台工作人员来解决冻结问题 我想消除这种延迟时间,并尽可能减少它 欢迎提供任何提示、建议或信息,请提前感谢您可以异步执行SQL调用,并让Microsoft处理后台进程 请注意,这不会减少SQL server的响应时间,因为您必须尝试提高网络速度或提高SQL语句的

我已经创建了一个vb.net应用程序,它在internet上的远程位置使用SQL Server数据库

有10个vb.net客户端同时工作

问题在于插入新行或从数据库检索行时发生的延迟时间,表单在处理数据库时似乎冻结了一段时间,我不想使用后台工作人员来解决冻结问题

我想消除这种延迟时间,并尽可能减少它


欢迎提供任何提示、建议或信息,请提前感谢

您可以异步执行SQL调用,并让Microsoft处理后台进程


请注意,这不会减少SQL server的响应时间,因为您必须尝试提高网络速度或提高SQL语句的性能。

您可以异步执行SQL调用,并让Microsoft处理后台进程

请注意,这不会减少SQL server的响应时间,因为您必须尝试提高网络速度或提高SQL语句的性能。

好的,有两个问题:

表单在处理数据库时似乎冻结了一段时间,我不想使用后台工作程序 以克服冻结问题

虚荣、傲慢和现实很少混合在一起。任何超过短时间(0.1-0.5秒)的操作都应该异步运行,这是使UI响应的唯一方法。不管问题是什么,如果这可能需要更长的时间在互联网应用程序上,将它们解耦

但是:

问题在于插入新记录或从数据库检索记录时发生的延迟时间

那么,问题是什么?认真地这是一个延迟问题(往返次数太多,使用更高效的sql、批处理,因此不要在每次发送20个问题后等待结果)还是服务器被覆盖?从问题中不清楚这是否真的是一个延迟问题

最后:

我想消除这种延迟时间

祷告你所信仰的任何上帝改变物理规则(主要是光速),或祷告你当地的医生以低成本实现量子隐形传态。包在此刻需要时间去旅行,没有办法改变这一点

检查您是否使用了过多的行程。永远不要(!)将sql server与sql一起远程使用-将其放入web服务中,使其适合应用程序,甚至可能与您的屏幕进行1:1匹配,这样您就可以在一次往返中(而不是十几次)请求数据并发送更新。12年前,当我们在.NET中使用自定义ORM进行类似操作时,我们使用了一个数据访问层,在一次运行中访问多个查询,并为它们返回多个结果集——因此,一个包含10个下拉列表的表单可以在一次往返中请求所有10个数据集。如果一个请求需要0.1秒的互联网时间,那么这将节省0.9秒。我们有一个大约100(!)次往返(创建一棵树)的表单,并将其减少到不到5次——从“花时间”到“哇,那里”。而且是异步的,对不起

然后意识到移动大量数据的速度很慢,除非您有即时高带宽连接

这就是async的用途——如果您有无法优化的传输时间或延迟时间问题,并且不想使用async,请继续提供糟糕的体验。

好吧,有两个问题:

表单在处理数据库时似乎冻结了一段时间,我不想使用后台工作程序 以克服冻结问题

虚荣、傲慢和现实很少混合在一起。任何超过短时间(0.1-0.5秒)的操作都应该异步运行,这是使UI响应的唯一方法。不管问题是什么,如果这可能需要更长的时间在互联网应用程序上,将它们解耦

但是:

问题在于插入新记录或从数据库检索记录时发生的延迟时间

那么,问题是什么?认真地这是一个延迟问题(往返次数太多,使用更高效的sql、批处理,因此不要在每次发送20个问题后等待结果)还是服务器被覆盖?从问题中不清楚这是否真的是一个延迟问题

最后:

我想消除这种延迟时间

祷告你所信仰的任何上帝改变物理规则(主要是光速),或祷告你当地的医生以低成本实现量子隐形传态。包在此刻需要时间去旅行,没有办法改变这一点

检查您是否使用了过多的行程。永远不要(!)将sql server与sql一起远程使用-将其放入web服务中,使其适合应用程序,甚至可能与您的屏幕进行1:1匹配,这样您就可以在一次往返中(而不是十几次)请求数据并发送更新。12年前,当我们在.NET中使用自定义ORM进行类似操作时,我们使用了一个数据访问层,在一次运行中访问多个查询,并为它们返回多个结果集——因此,一个包含10个下拉列表的表单可以在一次往返中请求所有10个数据集。如果一个请求需要0.1秒的互联网时间,那么这将节省0.9秒。我们有一个大约100(!)次往返(创建一棵树)的表单,并将其减少到不到5次——从“花时间”到“哇,那里”。而且是异步的,对不起

然后意识到移动大量数据的速度很慢,除非您有即时高带宽连接


这就是async的用途——如果您有无法优化的传输时间或延迟时间问题,并且不想使用async,继续提供糟糕的体验。

您可以做一些事情来加快速度,但是如果不看代码,很难说

  • 如果您使用的是通用inse