SQL Server交叉连接性能

时间:2014-06-03 12:39:22

标签: sql sql-server

我有一个包含14,091行的表(2列,我们先说名字,姓)。然后我有一个日历表,有553行日期(每个月的第一天)。我做一个交叉连接,以获得名字,姓氏和&的每个组合。因为这是我的要求。这需要一分钟。

我能做些什么来加快速度,或者交叉加入永远不会像我怀疑的那样变得更快?

人员表

first_name varchar2(100)
last_name varchar2(1000)

日期表

dt DateTime


select a.first_name, a.last_name, b.dt
from people a, dates b

2 个答案:

答案 0 :(得分:1)

制作所有可能的组合会很慢。 14091 * 553.在你有索引或内连接之前,它不会很快。

答案 1 :(得分:0)

呀。花一点多时间。让我们明白这一点。你说的是14091 * 553行 - 即7792323.Rounded是780万行。并将它们加载到数据表中(性能不可知)。

想看慢吗?将它们放入网格中。那你看得慢。

表格中的要求毫无意义。没有。绝对没有。

不,没有办法加速将780万行加载到数据结构中,而这种数据结构并不意味着保存这些数据量。