作者归档:maomao2014

mssql sqlserver 聚集索引、非聚集索引区分


摘要:
下文讲述聚集索引和非聚集索引的区别,如下所示:



聚集索引、非聚集索引区分:

聚集索引、非聚集索引:
聚集索引和非聚集索引的区别为:物理表的数据存放是否同索引的存放顺序来判断;
聚集索引:物理表按照索引排序存放
非聚集索引:物理表不按照索引的顺序存放
聚集索引:物理表只允许存在一个聚集索引
非聚集索引:物理表可允许存在多个非聚集索引

聚集索引、非聚集索引优缺点:

聚集索引:在特定的情况下 “检索数据的速度比非聚集索引快”(因为物理表上的数据按照索引顺序存放)
聚集索引:数据插入时比非聚集索引慢


聚集索引、非聚集索引应用场景:

说明

聚集索引

非聚集索引
列数据分组排序

两者无差异
返回指定范围数据

使用

频繁更新列

使用
外键列 主键列

两者无差异
索引列频繁修改

使用
索引列不同值非常多

使用
索引列相同值非常多

使用

mssql sqlserver 新增、修改、删除自定义函数的方法分享


摘要:
下文将讲述在sqlserver数据库中新增和修改 删除自定义函数的方法,如下所示:
实验环境:sql server 2008 R2


自定义函数根据返回类型的不同,可分为:标量型函数和表值函数
标量型函数:
返回一个值的函数
表值函数:
返回一个表的函数

自定义函数举例应用:

  ---表值型函数定义
   create function dbo.fn_test(
      @a int,@b int
       )
	 returns table
	 as 
	 begin
	    declare @tmp table(keyid int,info varchar(30)) 
		 /*sql脚本*/
		  
		 return @tmp
	 end
  ---标量型函数定义
create function dbo.fn_test(
      @a int,@b int
       )
	 returns int
	 as 
	 begin
	    declare @tmp int 
		 /*sql脚本*/
		  
		 return @tmp
	 end
  

 ---修改自定义函数方法,只需将create 变更为alter 
 -----输入相关的脚本内容即可
 alter function dbo.fn_test(
      @a int,@b int
       )
	 returns int
	 as 
	 begin
	    declare @tmp int 
		 /*sql脚本*/
		  
		 return @tmp
	 end
  
  ---删除自定义函数的方法
  drop function dbo_fn_test

mssql sqlserver 数据库-索引重建的方法分享


摘要:
下文分享索引重建的方法,如下所示:
实验环境:sql server 2008 R2


方式1:重建单个索引

  alter index [索引名称]  on [表名称]  rebuild;

方式2:重建整个数据库下的所有索引(批量重建索引)

  use [数据库名称]
   go
    
  alter index all  on [表名称]  rebuild;
   go