Visual Studio 集成服务变得无响应

Visual Studio Integration Services becomes unresponsive

我正在 Visual Studio 中开发 ETL 解决方案,当我 select 从 SQL 服务器数据库查看时,Visual Studio 冻结,点击任意位置结果在以下通知中:“Visual Studio 忙”。

这非常令人沮丧,我无法完成解决方案的创建。

有什么建议可以让它更快、响应更快吗?

当您尝试针对巨大的 table 验证 select 语句时,有时会发生这种情况。根据 RDBMS 的不同,一些数据源在进行验证时并没有很好地返回元数据来进行验证,而是 运行 Select * from table。因此,验证可能会持续很长时间。

尝试检查这是否真的发生了,请在加载包时检查包中 RDBMS 上的 运行ning 查询。

否则尝试复制包并切换到 XML 并重建它直到发现问题。从您的 XML 文件中删除问题,保存并在设计器中重新绘制。

我。选择视图作为 OLE DB 源时会发生什么?

我创建了一个 SQL Server Profiler 跟踪来跟踪在 AdventureWorks2017 数据库上执行的所有 T-SQL 命令,同时我选择 [HumanResources].[vEmployee] 视图作为 OLE DB 源。

以下截图显示执行了两次以下命令:

set rowcount 1
select * from [HumanResources].[vEmployee]

这意味着 OLE DB 源将查询的结果集限制为单行并对所选视图执行 Select * 命令以提取所需的元数据。

值得一提的是,SET ROWCOUNT 1 导致 SQL 服务器在返回指定行数后停止处理查询。这意味着只请求了一行而不是视图的所有数据。

二.问题的可能原因

您提到的问题主要是由于以下原因造成的:

(1) Third-party 个扩展安装在 Visual Studio

在这种情况下,您应该尝试在安全模式下启动 Visual Studio 以防止加载 third-party 扩展。您可以使用以下命令

devenv.exe /safemode

(2)View查询数据量大

Visual Studio 如果视图 returns 包含大量数据或包含错误的 JOINS,则可能会冻结。您可以使用简单的解决方法解决此问题。更改视图的SQL并添加一个条件,即只有returns几行(例如SELECT TOP 1。然后,在设计包时使用此视图。完成后,删除添加的条件。

(3) 糟糕的数据库设计

此外,您的视图设计良好并且基础表具有适当的索引非常重要。此外,检查您是否没有任何与数据库设计相关的问题。例如:

(a) 索引碎片

索引碎片是以百分比表示的索引性能值,可以通过SQL服务器DMV获取。您可以参考以下文章了解更多信息:

(b) 大二进制列

确保视图不包含大型二进制列,因为它会严重影响查询执行。

(4) 硬件问题

即使我认为这不应该是那种情况的原因。尝试检查您机器上的可用资源。例如:

(a) 驱动器超出存储空间

如果使用 windows,请检查 C: 驱动器存储 (默认系统数据库目录) 和存储数据库的驱动器并确保它们未满。

(b) 服务器内存不足

确保您的机器没有 运行 内存不足。您可以简单地使用任务管理器来确定可用内存量。

(5) 优化 Visual Studio 性能

最后要提的是,有几个建议可以提高 Visual Studio 的性能。请随时检查它们: