欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server Join方式

程序员文章站 2022-07-20 10:42:24
sql server join方式   正文 哈希匹配:   前提:无   图标画的也很到位   foreach(row...

sql server join方式

 

正文

哈希匹配:

 

前提:无

 

图标画的也很到位

 

foreach(row  r1  in  outer table)

 

{

 

    hashtable (hash(r1),r1);

 

}

 

 

 

foreach(row  r2  in  innertable)

 

{

 

if(hashtable.contians(hash(r2)))

 

  output(hashtable (hash(r2), r2)

 

}

 

 

 

合并连接:

 

 

 

前提:两个连接字段是排序的

 

 

 

 

 

 

 

 

 

图标画的也很到位

 

 

 

int  i=0;

 

int  j=0;

 

for( ; i< outer table.count;)

 

{

 

r1=outer table[i];

 

for(;j< inner table.count ;)

 

{

 

        if(r1= r2 )  

 

{

 

output(r1, r2);

 

j++;

 

}

 

 

 

        if(r1>r2)   

 

{

 

j++;

 

  continue;

 

}

 

 

 

        if(r1<r2)

 

        {

 

          i++;

 

          break;

 

        }

 

    }

 

}

 

 

 

 

 

 

 

 

 

嵌套循环:

 

 

 

 

 

 

 

 

 

图标画的也很到位

 

 

 

 

 

foreach(row  r1  in  outer table)

 

{

 

foreach(row  r2  in  inner table)

 

{

 

        if( r1, r2 符合匹配条件 )

 

            output(r1, r2);

 

    }

 

}

 

 

 

嵌套循环伪码来自上面提到的文章

 

 

 

下图摘自《sqlserver2008查询性能优化》:

 

 

SQL Server Join方式