小编Bob*_*obb的帖子

在BET Server中'BETWEEN'功能是否非常昂贵?

我正在尝试将两个相对简单的表连接在一起,但我的查询遇到了严重的挂断.我不确定为什么,但我认为它可能与'between'功能有关.我的第一个表看起来像这样(有很多其他列,但这将是我拉的唯一列):


RowNumber
1
2
3
4
5
6
7
8
Run Code Online (Sandbox Code Playgroud)

我的第二个表"将"行"分组"为"块",并具有以下架构:


BlockID     RowNumberStart     RowNumberStop
1           1                  3
2           4                  7
3           8                  8
Run Code Online (Sandbox Code Playgroud)

我想要的结果是将RowNumber与BlockID链接如下,与第一个表的行数相同.所以结果看起来像这样:


RowNumber   BlockID           
1           1
2           1
3           1
4           2
5           2
6           2
7           2 
8           3
Run Code Online (Sandbox Code Playgroud)

为了得到它,我使用了以下查询,将结果写入临时表:


select A.RowNumber, B.BlockID
into   TEMP_TABLE
from   TABLE_1 A left join TABLE_2 B
on     A.RowNumber between B.RowNumberStart and B.RowNumberStop
Run Code Online (Sandbox Code Playgroud)

TABLE_1和TABLE_2实际上是非常大的表.表1大约是122M行,而TABLE_2大约是65M行.在TABLE_1中,RowNumber被定义为'bigint',而在TABLE_2中,BlockID,RowNumberStart和RowNumberStop都被定义为'int'.不确定是否有所作为,但也只是想包含这些信息.

该查询现已挂了八个小时.对这种类型和数据量的类似查询不会花费这么长时间.所以我想知道它是否可能是挂起此查询的'之间'声明.

绝对欢迎任何有关如何提高效率的建议.

sql-server performance between

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

between ×1

performance ×1

sql-server ×1