none
请问 SQL SERVER 2005 开始的String summary如何实现的呢? RRS feed

  • 问题

  • 请问 SQL SERVER 2005 开始的String summary如何实现的呢?

    比如说下面的语句,SQL SERVER 现在既然也能很精确的评估到有多少行,注意是 '%Abingdon%'  而不是 'Abingdon%'

    select * from Person.Address where city like '%Abingdon%'

    2011年10月1日 13:04

答案

全部回复

  • 简单的说就是分词
    想不想时已是想,不如不想都不想。
    2011年10月1日 13:29
    版主
  • 简单的说就是分词
    想不想时已是想,不如不想都不想。


    谢谢,能不能详细一点,你说的分词就是trie tree算法吧,

    如果是'Abingdon%'的话,那很好理解,因为有共同的前缀,

    但是如果是'%Abingdon%'的话,那是如何统计的?

    2011年10月1日 13:42
  • 就是trie tree没错。不过这东西跟前缀有啥关系?它是把这个字符串分拆开来解析的。
    想不想时已是想,不如不想都不想。
    2011年10月2日 9:49
    版主
  • 就是trie tree没错。不过这东西跟前缀有啥关系?它是把这个字符串分拆开来解析的。
    想不想时已是想,不如不想都不想。

    还是没有懂啊,那分析的具体过程是怎么样的呢?有没有相关的文档呢?
    2011年10月3日 3:00
  • SQL Server没有公开的string summary实现细节的文档。你是不是要看源代码啊?你知道什么是trie tree吗?
    想不想时已是想,不如不想都不想。
    2011年10月3日 3:31
    版主
  • SQL Server没有公开的string summary实现细节的文档。你是不是要看源代码啊?你知道什么是trie tree吗?
    想不想时已是想,不如不想都不想。
    首先再次感谢你的回复,但是我并不认为如你想象的那么简单,
    trie tree我当然知道啊,相关的论文我都找到了,不过'%Abingdon%'的string summary的算法并不像'Abingdon%'的那么简单,一个trie tree就可以解释了。

    因为它除了trie tree外,还用到了 independence assumptions 跟 Markov assumptions等算法,我不知道你是否清楚这一点?

    当然,根据你理解的算法,如果你能算出下面那篇文章里EstimateRows的值为19.81,这个19.81是怎么来的。那我想你是清楚了. 

    “为什么SQL Server也能够预估到19.81行(EstimateRows”。。。。

    http://blogs.msdn.com/b/apgcdsd/archive/2011/10/01/10158443.aspx

     

    有关论文你具体的你可以看一下下面:

    http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=7,149,735.PN.&OS=PN/7,149,735&RS=PN/7,149,735
    随便说一下,源代码我当然想看啦,问题是搞得到吗,哈哈



    2011年10月10日 3:32
  • 像'Abingdon%'并不需要string summary,statistic以前就有了,Microsoft SQL Server用的是一个patent pending的算法。

    源代码能搞得到,就是不可以给你看,哈哈


    想不想时已是想,不如不想都不想。
    2011年10月10日 4:15
    版主
  • 像'Abingdon%'并不需要string summary,statistic以前就有了,Microsoft SQL Server用的是一个patent pending的算法。

    源代码能搞得到,就是不可以给你看,哈哈


    想不想时已是想,不如不想都不想。

    'Abingdon%'的是比较简单,这个我知道的,

    哈哈,啥时候等我强了也去面面 SQL Server Storage Engine Team或者Performance team ,偷看偷看SC,嘻嘻

    2011年10月10日 5:11