Sql 选择空字符串很慢
为了加快查询速度,我注意到由于某种原因,添加到查询中的空列越多,查询速度就越慢 仅使用Id列,查询将在大约1秒内返回100k条记录 如果我加上大约20个空列,它将变为4秒 问题 -SQL中字符串的默认数据类型是什么? -有没有办法加快速度Sql 选择空字符串很慢,sql,tsql,Sql,Tsql,为了加快查询速度,我注意到由于某种原因,添加到查询中的空列越多,查询速度就越慢 仅使用Id列,查询将在大约1秒内返回100k条记录 如果我加上大约20个空列,它将变为4秒 问题 -SQL中字符串的默认数据类型是什么? -有没有办法加快速度 SELECT Id, '' as col1, '' as col2, '' as col3 FROM myTable 这将取决于myTable中的行数。例如:如果mytable上有905k行,那么SQL基本上会为905k行创建20个带
SELECT Id,
'' as col1,
'' as col2,
'' as col3
FROM myTable
这将取决于myTable中的行数。例如:如果mytable上有905k行,那么SQL基本上会为905k行创建20个带“”的列 我只是在我自己的有805k行的桌子上试过。对于我添加的每一列增量,SQL都会为每一行创建值
希望这有助于您更清楚地理解它。默认数据类型似乎是varchar1-您可以将其插入临时表并检查临时表结构以确认。您可以尝试的一个选项是声明一个变量并使用它,而不是使用空格:
declare @space varchar(40) = ''
SELECT
id,
@space as col1,
@space as col2,
@space as col3
FROM dbo.[table]
问题在于你们的执行计划,因为索引覆盖率和统计数据。您可以使用Id上的新索引来加快它的速度。空字符串中的列是varchar1。@Deadsheep39,但当我添加这些新的空列时,速度很慢,并且仅使用Id时没有性能问题