访问SQL查询响应非常慢

时间:2013-04-11 21:28:41

标签: database ms-access-2007

我正在使用MS ACCESS 2007和C#,我正在尝试执行以下查询..

我的表格包含三列WordPOSFreq,并且具有唯一的记录。总记录数是“数百万条记录”。

这个查询对我来说很好,并返回我想要的所有正确结果:

Select Word, POS, Freq from TName Where Word **IN** ( SELECT Word  from TName                        Group By Word Having Count(*) > 1 ) Order By Word;

但是当我尝试以下类似的查询(在EXE中)时,系统停止响应。

Select Word, POS, Freq from TName Where Word **NOT IN** ( SELECT Word  from TName                        Group By Word Having Count(*) > 1 ) Order By Word;

我还尝试了 MS Access Query面板中的第二个sql命令,MS Access停止响应,但返回的结果非常缓慢。

请帮帮我......

2 个答案:

答案 0 :(得分:0)

由于你在Access中,你只需将SELECT IN置于自己的查询中,然后只使用普通的JOIN。

查询WordCounts

SELECT Word from TName Group By Word Having Count(*) > 1

您的最终查询:

SELECT Word, POS, Freq from TName
INNER JOIN WordCounts ON TName.Word = WordCounts.Word

答案 1 :(得分:0)

创建嵌套查询,如QryWordsThatAppearMoreThanOnce     通过Word计数来自TName Group的Word(*)> 1

然后加入

Select n.Word, n.POS, n.Freq from TName n
inner join QryWordsThatAppearMoreThanOnce q On q.Word = n.Word
Order By n.Word

另一个是

Select n.Word, n.POS, n.Freq from TName n
Left join QryWordsThatAppearMoreThanOnce q On q.Word = n.Word
and q.Word is null
Order By n.Word

无论如何,某种奇怪的可能性会发挥作用。