提问人:UnDiUdin 提问时间:3/14/2023 最后编辑:UnDiUdin 更新时间:3/14/2023 访问量:22
对文件流 blob 表具有 where 条件的查询,从不仅在某些服务器上返回
Query with where condition on the filestream blob table never returning only on some servers
问:
强文本a我有一个查询,它从带有列的表中最多返回一行,使用以下条件:FILESTREAM
select * from TABLE_WITH_FILESTREAM_BLOBS
where BLOB IS NULL AND ID_BLOB = 99
但是,在某些数据库上执行此查询时,此查询永远不会返回。如果我删除该条件,查询将按预期返回:BLOB IS NULL
select * from TABLE_WITH_FILESTREAM_BLOBS
where ID_BLOB = 99
我怀疑该问题与表中的大量记录有关,并且服务器需要读取所有 blob 才能返回有效响应。
是否有任何服务器设置可以调整以避免此问题?还是根本无法以高性能的方式在列上使用子句?WHERE
FILESTREAM
我的目标是让服务器返回,否则我的应用程序会卡住。
UPDATE:查询是这样的
(@P0 int)SELECT ID_BLOB, BLOB_DATA FROM MY_BLOB_TABLE
WHERE ID_BLOB= @P0 AND BLOB_DATA IS NULL
所以这是一个参数化查询,难道因为是参数化而触发了全表扫描,即使有条件将 seacrh 重新搅拌到只有一条记录 ()?WHERE ID_BLOB= @P0
谢谢!
答: 暂无答案
下一个:SQL 无效列名问题
评论
CREATE INDEX IX_Nulls ON TABLE_WITH_FILESTREAM_BLOBS (ID_BLOB) WHERE (BLOB IS NULL)