0

我有一张桌子...

FactorID, col1 col2     Factor Value
1         a     2        1231
1         b     3        2342
2         a     2        1233
2         b     3        2344

这意味着......对于因子 ID 1,我有 1500 条记录......而因子 ID 2 我有相同数量的记录。

对于因子 ID 1 和 2,除“因子值”外,每个值都相同。

当我将上面的表与其他一些表连接以获取数据时...... FactorID 1 给了我快速的结果......但是当我查询“2”......执行永远不会结束。

这对我来说似乎很奇怪。它与行锁有关吗?请帮我。

4

2 回答 2

1

可能是连接正在使用表扫描。检查 FactorID 是否有索引。您看到的结果可能是因为 FactorID 1 记录在表中排在第一位,当涉及到 FactorID 2 时,它会继续逐个跳过 FactorID1 的记录,直到涉及到 FactorID 2。

于 2011-03-25T00:48:49.377 回答
0

 

当我将上面的表与其他一些表连接以获取数据时...... FactorID 1 给了我快速的结果......但是当我查询“2”......执行永远不会结束。


哇,说的太少了。

答案取决于三件事。

  1. 你的表是如何定义的?
    • 你有主键吗?哪些列是键?如果上表中只有两个“FactorID”值,那么主键将是一个糟糕的选择。
    • 是否有任何其他列被索引?
    • 你真的有名为“col1”和“col2”的列吗?或者你只是说,“名字不重要”?
    其他表的定义方式也很重要。他们有钥匙吗?
     
  2. 表中有什么类型的数据?多少行?
     
  3. 最重要的事情:“当我将表与其他表连接时”是什么意思?连接了多少张表?你是如何进行连接的?

另外,您说您的查询“永无止境”-您等了多长时间?

抱歉,我们需要更多信息才能给出有意义的答案。

于 2011-03-25T01:09:07.323 回答