2011-06-09 79 views
0

我運行下面的查詢,試圖在表上識別重複我的DB重複查詢時性能下降?

SELECT * 
FROM 
    db.tablename x 
JOIN db.tablename z 
    ON x.columnA = z.columnA 
WHERE 
    x.columnB > z.columnB 

但是,它似乎永遠走。即只是想知道這是否是一個基於性能的問題,或者是否有另一種方法可以編寫這個更快的工作?

謝謝

回答

0

如果你只是需要測試,你只能獲取幾百條記錄。例如,

SELECT top 100 * 
FROM 
db.tablename x 
JOIN db.tablename z 
ON x.columnA = z.columnA 
WHERE 
x.columnB > z.columnB 
+0

謝謝@razagill - 試過這個,但得到一個SQL錯誤的頂部100 * [MySQL 5.5]?認爲需要「在哪裏......極限100」? – Tom 2011-06-09 10:22:34

+0

哦,那隻適用於MSSQL。對於MySQL,您需要從表 – 2011-06-09 10:24:44

+0

之後鍵入LIMIT 100,然後是:)限制100 :)謝謝 - 認爲這是更好的主意,我可以運行多次這也許? – Tom 2011-06-09 10:26:29

2

沒有明顯的SQL問題。

  1. 不要做select *
  2. 什麼是列類型?確保你比較蘋果和ints,例如,在where子句中。
  3. 你加入了一個鍵控列,對不對?
+0

嘿感謝您的答覆 - 是的問題是我想找到整個行... SELECT *的原因 - 所以一旦我可以識別它們,我可以刪除它們? – Tom 2011-06-09 10:16:23

+0

那麼你可以用主鍵只對嗎? – Ruben 2011-06-09 10:22:41