我的网络上运行着一组基于 XML 的服务。
这些服务中的数据需要镜像到 SQL Server 2008 实例上的表中。
将 XML 放入表中没有问题我已经可以做到了,但我现在要做的是将一大串 XML 传递给存储过程,然后使用 OPENXML 命令将其插入表中.
我想知道的是,不是使用 3rd 方程序从服务中获取这些数据,然后调用存储的过程并插入它,我是否有可能让 SQL Server 直接从中获取 XML服务 URL 并像这样处理它。
无论我尝试多少次,我似乎都能找到大量关于从服务器文件系统读取文件/从服务器文件系统写入文件的文章和帖子,以及实际插入 XML 数据的几百万条左右的文章,但我似乎无法找到查找有关让服务器直接从 URL 获取数据的任何内容。
干杯
-----====== 更新 25/8/2012 ======--
经过更多的研究,我找到了第三种方法来做到这一点:
declare @xmlObject as int
declare @responseText as varchar(max)
declare @url as varchar(2048)
select @url = 'http://server/feed/data'
exec sp_OACreate 'MSXML2.XMLHTTP', @xmlObject OUT;
exec sp_OAMethod @xmlObject, 'open', NULL, 'get', @url, 'false'
exec sp_OAMethod @xmlObject, 'send'
exec sp_OAMethod @xmlObject, 'responsetext', @responseText OUTPUT
exec sp_OADestroy @xmlObject
select @responseText
exec …
Run Code Online (Sandbox Code Playgroud) 不是 DBA 家族的纯血统成员,但更像是一个开发团队,我发现自己试图找出一些运行缓慢的查询。
然而,我的问题的主题不是“为什么我的查询很慢”,而是想知道 MySql 中的“LIMIT”命令是如何工作的。
目前,我仍在尝试对服务器性能本身进行故障排除,因此作为一种给它一些 SQL 来咀嚼的方法(只是为了让它做一些工作),我正在使用以下内容:
SELECT * FROM <table> LIMIT 10
Run Code Online (Sandbox Code Playgroud)
我正在使用的表是一个实时表,其中有超过 50Mil 的行,并且由于我目前只进行测试,我的期望是这将返回表顶部的前 10 条记录,并且很容易在 10 分钟内完成。
然而...
我看到这个 SQL 在 30 分钟或更长时间后仍在运行,并且似乎没有做任何事情。
我想特别澄清的是:
MySql 是否尝试从数据库中获取整个表然后才返回前 10 行
或者
MySql 是否在接收行时获取行并在计算收到 10 行后停止
干杯美女