我有一个表,它是我的SQL Server 2012数据库中的对象的链接表,(annonsid, annonsid2).此表用于创建三角形甚至矩形链,以查看谁可以与谁交换.
这是我在表Matching_IDs上使用的查询,其中有150万行,使用此查询生成1400万个可能的链:
SELECT COUNT(*)
FROM Matching_IDs AS m
INNER JOIN Matching_IDs AS m2
ON m.annonsid2 = m2.annonsid
INNER JOIN Matching_IDs AS m3
ON m2.annonsid2 = m3.annonsid
AND m.annonsid = m3.annonsid2
Run Code Online (Sandbox Code Playgroud)
我必须提高性能,可能需要1秒或更短时间,有没有更快的方法来做到这一点?查询在我的计算机上大约需要1分钟.我通常使用a WHERE m.annonsid=x,但它需要相同的时间,因为它必须经历所有可能的组合.
更新:最新的查询计划
|--Compute Scalar(DEFINE:([Expr1006]=CONVERT_IMPLICIT(int,[globalagg1011],0)))
|--Stream Aggregate(DEFINE:([globalagg1011]=SUM([partialagg1010])))
|--Parallelism(Gather Streams)
|--Stream Aggregate(DEFINE:([partialagg1010]=Count(*)))
|--Hash Match(Inner Join, HASH:([m2].[annonsid2], [m2].[annonsid])=([m3].[annonsid], [m].[annonsid2]), RESIDUAL:([MyDatabase].[dbo].[Matching_IDs].[annonsid2] as [m2].[annonsid2]=[MyDatabase].[dbo].[Matching_IDs].[annonsid] as [m3].[annonsid] AND [MyDatabase].[dbo].[Matching_IDs].[annonsid2] as [m].[annonsid2]=[MyDatabase].[dbo].[Matching_IDs].[annonsid] as [m2].[annonsid]))
|--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([m2].[annonsid2], [m2].[annonsid]))
| |--Index Scan(OBJECT:([MyDatabase].[dbo].[Matching_IDs].[NonClusteredIndex-20121229-133207] AS [m2]))
|--Parallelism(Repartition …Run Code Online (Sandbox Code Playgroud) 如果我在 vue.config.js 中使用 baseUrl 例如。'/directory1' 在设置 vue-router 时我也必须有 base: '/directory1' 否则它会路由到 '/'。
我希望能够在我的 vue 应用程序中引用 baseUrl,这样我就可以在我的 vue 路由器设置中使用 baseUrl,这可能吗?