我正在尝试在一个约35.000行的表上进行选择,其中一列是一个varbinary,带有一些空值,我需要从结果中排除这些null值。
问题是:当您在Varbinary列上进行选择时,完成需要大量时间才能完成,我找到了一种方法,我不确定自己可以使用或是做类似的最佳方法那我想要一些意见。
这就是:
SELECT REQUEST,REQLOCATION,DESCRIPT,BLOBNAME,BLOBSIZE,substring(BLOBVALUE,0,1) AS BLOBVALUE,BLOBMODE,BLOBPATH,BLOBID,
REDIRID,ANALYST,CLIENT,SEVENT,PACKAGE,INSERTDATE
FROM REQBLOB WHERE substring(BLOBVALUE,0,1) IS NOT NULL
varbinary
列是" blobvalue",其中我进行" substring
"选择,此查询给了我20.000行的结果,我认为它仅返回了有效的数据,而不是nulls,您对此有何看法?<<<<<<
摆脱 WHERE
中的 SUBSTRING
,它使您的查询不可降低;这就是为什么它很慢。
SELECT REQUEST,
REQLOCATION,
DESCRIPT,
BLOBNAME,
BLOBSIZE,
SUBSTRING(BLOBVALUE, 0, 1) AS BLOBVALUE,
BLOBMODE,
BLOBPATH,
BLOBID,
REDIRID,
ANALYST,
CLIENT,
SEVENT,
PACKAGE,
INSERTDATE
FROM REQBLOB
WHERE BLOBVALUE IS NOT NULL;
为什么无论如何您都在varbinary
上使用子字符串..?