SQL Server执行理解

SQL Server执行理解

创建表

CREATE TABLE Person(
      Id int IDENTITY(1,1) NOT NULL,
      Name nvarchar(50) NULL,
      Age int NULL,
      Height int NULL,
      Area nvarchar(50) NULL,
      MarryHistory nvarchar(10) NULL,
      EducationalBackground nvarchar(10) NULL,
      Address nvarchar(50) NULL,
      InSiteId int NULL
  ) ON [PRIMARY]

嵌套循环
不同于循环嵌套的是,合并连接是从每个表仅仅执行一次访问。从这个原理来看,
合并连接要比循环嵌套要快了不少。

       SELECT * FROM Nx_Column AS C
  INNER JOIN Nx_Article AS A
  ON A.ColumnId = C.ColumnId

哈希连接
散列连接同样仅仅只需要只访问1次双方的数据。散列连接通过在内存中建立散列表实现。
这比较消耗内存,如果内存不足还会占用tempdb。但并不像合并连接那样需要双方有序。

要进行下面这两个实现,得把两个列的聚集索引不要建在ColumnId列,否则不会采用哈希连接。

  ALTER TABLE PK_Nx_Column DROP CONSTRAINT PK_Nx_Column    --删除主键
  DROP INDEX Nx_Column.PK_Nx_Column    --删除聚集索引
  CREATE CLUSTERED INDEX IX_ColumnName ON Nx_Column(ColumnName)    --创建聚集索引
  --这里再设置回主键就可以了,有了聚集索引,就不能随主键默认建啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值