none
Select COUNT(*) 慢 RRS feed

  • 问题

  • 表结构如下:

    (

    id     bigint PRIMARY KEY,

    Name     NVARCHAR(50),

    BornDate DATETIME,

    Address NVARCHAR(250)

    )

    已经有200百万数据

    SELECT COUNT(*) FROM [Profile] WHERE Address LIKE '%广东%';

    查询时超过1分钟,能在5秒钟统计出来吗?

    2015年4月1日 1:11

答案

全部回复

  • 您好,
    主要不是 count(*) 的問題。
    是like LIKE '%广东%'; 的問題!

    可以試一下以下的方式

    1.針對 address  建 index 

    2. 改成 LIKE '广东%'; 


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2015年4月1日 1:17
  • 建議你加一個"地區" table,裡面放的是"地區ID, 地區名",再在Profile加個Column放地區ID。這樣就可以

    Table Region
    RegionID    RegionName
    1                廣東
    2                廣西
    ...               ...

    SELECT COUNT(*) FROM [Profile] WHERE RegionID =1;


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆標示為解答以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to clickMark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2015年4月1日 1:19
  • 如果是这样呢??

    SELECT COUNT(*) FROM [Profile] WHERE Name LIKE '%广东%';

    2015年4月1日 3:48
  • Hello hell,

    >>如果是这样呢??

    SELECT COUNT(*) FROM [Profile] WHERE Name LIKE '%广东%';

    这样只是换了一个查询的列名称而已, 你还是可以用乱码客或另外提供的方法来提高查询效率,只是建索引的列名换成Name而已,如果的查询只是针对某一个列,你可以尝试对这个列建了clustered index,效率比较高。而且建议你的查询语法写成乱码客建议的那样,你目前的写法,是非常耗时的,具体你可以看这篇测试blog,是这对LIKE和索引的:

    http://myitforum.com/cs2/blogs/jnelson/archive/2007/11/16/108354.aspx

    Regards.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年4月3日 2:27
    版主
  • 您好,
    如果您的那個 % 無法調整的話,
    另一個方式是使用 全文搜索 

    建立Full Text 後使用 CONTAINS ,如下,

    SELECT COUNT(*)
    FROM [Profile]
    WHERE CONTAINS([Address], '广东');


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2015年4月7日 11:21