为什么Visual Studio中的SQL Server对象资源管理器如此缓慢



我刚刚在Azure中创建了一个新的SQL Server数据库,然后使用Azure门户中的链接在Visual Studio 2015中打开它。我不得不将我的IP添加到防火墙中,但除此之外,过程进行得很顺利。

然而,当我尝试通过SQL server对象资源管理器与数据库服务器交互时,速度非常慢。展开数据库中的任何文件夹(例如Tables文件夹)都需要10到30秒。该数据库是全新的,因此它唯一拥有的东西是Azure在实例化新数据库时创建的任何东西。

这是我创建并尝试在Visual Studio中查看的第二个Azure DB,两者都有相同的问题。对于第一个,我想我可能在设置过程中做错了什么,但这次我确保按照规定做每件事。

从Visual Studio中对数据库运行实际查询(右键单击数据库、New Query ...select * from INFORMATION_SCHEMA.TABLES;)非常快,因此我与Azure的连接似乎没有问题。

为什么速度如此缓慢?我能做些什么让它更快?

我在Windows 10上使用Visual Studio 2015 Update 1(14.0.24720.00)(完全修补),在创建数据库的过程中,我选中了使用最新版本的复选框。

当您第一次连接数据库时,Visual Studio中的SQL Server对象资源管理器(SSDT)会构建整个数据库的模式模型。这是一个基于模型的数据库开发概念,它提供了一些好处,例如根据数据库验证脚本,而无需修改实时数据库等。当涉及到Azure SQL DB时,资源受到数据库定价层的限制,执行查询以获取数据库模型的性能可能会有所不同。根据我们的性能测试,S1/S2以上的定价层提供了与本地或预SQL实例类似的交互性。

更详细地说,当前SSDT的机制是组合最小数量的查询,以最大限度地减少与SQL服务器/数据库的往返操作数量,因此每个查询执行时间更长。在执行查询时,它会影响SQL Server对象资源管理器的交互性。

为了增强,SSDT团队正在修改Azure SQLDB的设计,以提供更快的交互体验,同时保持基于模型的数据库开发的优势。

披露:我在SQL数据工具团队担任PM

@eric kang在他的评论中给出了使用"服务器资源管理器"而不是"SQL Server对象资源管理器"的好建议-这对基本数据查询更好,因为它实际上可以在实时中使用

相关内容

  • 没有找到相关文章

最新更新