sql-server - 通过链接服务器(非常)缓慢地将数据摄取到我的本地表中的可能原因是什么?
问题描述
我正在尝试通过以下查询下载数据以在本地 SQL 服务器中进行分析:
INSERT INTO dbo.my_table
SELECT * FROM OPENQUERY (linked_server, ‘SELECT * FROM remote_table’)
- remote_table 和 my_table 结构是相同的。
- 数据中有很多空值。
- remote_table 有 5000 万条记录。
- 未应用过滤器
- 我使用 SQL Server 来查询驻留在 Oracle 数据库中的表。
数据下载需要很长时间,我对此感到惊讶。对具有 c 的表的相同模式/数据库的类似查询。1000 万条记录大约需要 10 分钟。但是,尽管查询运行了 2 个小时,但我对 remote_table 没有运气!
谁能提出一些可能导致性能缓慢的原因以及我可以做些什么来加快速度?
谢谢!
解决方案
确保您在 Oracle 连接中使用较大的 Fetch_Size,如果这不能解决问题,请在 SqlDeveloper 或类似工具中进行测试。参见例如
exec sp_addlinkedserver N'MyOracle', 'Oracle', 'ORAOLEDB.Oracle', N'//172.16.8.119/xe', N'FetchSize=2000', ''
推荐阅读
- c# - 我如何重构这些功能?
- javascript - 有没有办法测试一个空的 React 道具是否没有被调用?
- php - 带有 laravel 的 icewind/smb 和 robgridley/flysystem-smb?
- javascript - Leaftet 问题 L.easybutton 复制
- excel - Excel 索引与 OR 条件匹配
- r - R如何导入以相同模式命名的批量txt文件并从所有文件中提取具有相同名称的行
- python - 写入现有的 csv 文件
- javascript - 自动更改频道名称不重复 (>=10m) (Discord.js v12)
- python - 有人可以解释这种 python 行为吗?
- python - 在 Conda 中打开 JupyterLab 时修复 404 错误