gpt4 book ai didi

sql-server - SQL Azure - 具有 nvarchar(max) 列的外部数据表性能低下

转载 作者:行者123 更新时间:2023-12-01 13:40:03 29 4
gpt4 key购买 nike

我无法找出针对外部数据表select查询比针对同一表的直接查询长得多的原因。

该表的架构如下:

CREATE EXTERNAL TABLE [WebApp].[TestTable]
(
[TestTableId] [int] NULL,
-- some other int columns
[Body] [nvarchar](max) NULL,
)
WITH (DATA_SOURCE = [ExternalInterface])

外部数据源是指位于同一资源组和位置的数据库。

直接查询总共7万行,1秒完成。对外部表的查询最多需要 20 分钟。

从选择中删除 body 列会将总时间缩短到几秒钟。所以这肯定与传输的数据量有关。

我猜我的配置出了问题。我只是不相信弹性查询引擎会这么慢。

最佳答案

因此,我设法通过将 nvarchar(max) 列转换为 nvarchar(n) 来解决这个问题。

从 WebApp.TestTable 中选择 [TestTableId]、cast([Body] as nvarchar(3000))

或者,指定目标表上 Body 列的最大长度也可以。

更改表 WebApp.TestTable 更改列 Body nvarchar(3000)

SQL 将 nvarchar(max) 列中的数据视为大型对象,并且由于某种原因,包含 LOB 列的外部表的性能非常糟糕...

关于sql-server - SQL Azure - 具有 nvarchar(max) 列的外部数据表性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41063699/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com