日度归档:2019年9月16日

mssql sqlserver 系统存储过程sp_helpstats关键字简介说明


摘要:
下文讲述系统存储过程sp_helpstats的功能说明,如下所示:
实验环境:sql server 2008 R2


sp_helpstats 功能说明

返回指定表包含的统计信息(列统计信息和索引统计信息)
————————–
sp_helpstats 语法
sp_helpstats [ @objname = ] ‘object_name’
[ , [ @results = ] ‘value’ ]
—-参数说明———
object_name:数据表名称 此参数必须输入

[ @objname = ] ” 指定用来提供统计信息的表。 object_name是nvarchar(520) 且不能为 null。 可以指定一个一部分或两部分名称。
[ @results = ]: 此参数只可输入 ”ALL”或”STATS“ ,缺省值为”STATS ”
当为ALL时,列出所有索引和列的统计信息
当为STATS时,列出与索引无关的统计信息


sp_helpstats 返回值说明:
0(成功)或 1(失败)
sp_helpstats 返回集合说明:

列名

备注
statistics_name

返回统计信息的名称
statistics_keys

返回统计信息所涉及的列


sp_helpstats 举例说明

  EXEC sp_helpstats   
@objname = '数据表名称',  
@results = 'ALL'; 

mssql sqlserver 使用sql脚本取上一条数据与下一条数据之差,递归计算的方法分享


摘要:
下文通过举例的方式讲述,获取数据表中上一条数据同下一条数据的计算方法,如下所示:



实现思路:
1.使用row_number开窗函数对数据表进行编号
2.使用cte表达式缓存数据
3.利用左联接获取所需的结果

  create table [maomao365.com]
(keyId int identity,qty int)
go

---基础数据生成
insert into [maomao365.com](qty)
values(10),(8),(7),(6),(8),
(2),(100),(200),(88),(78),(99)

---使用row_number生成cte表达式
;
with cteName (keyIdNew,qty)
as
(
 select ROW_NUMBER() 
  over(order by qty asc) as keyIdNew,
  qty
  from [maomao365.com] 
 )  

select a.*,
isnull(b.qty,0)-isnull(a.qty,0) as qtyCha
from cteName a 
left join cteName b on b.keyIdNew = (a.keyIdNew+1)
go

go
truncate table [maomao365.com]
drop     table [maomao365.com]

相关阅读:
row_number、rank、dense_rank用法简介
使用cte表达式更新数据的方法
with cte表达式(递归)找出最顶值的方法
cte表达式用法简介

mssql sqlserver系统存储过程sp_recompile简介说明


摘要:
下文讲述sqlserver中系统存储过程 sp_recompile 的功能说明,如下所示:
实验环境:sqlserver 2008 R2


sp_recompile 功能说明

sp_recompile的功能:对指定对象进行重新编译。

sp_recomplie 的处理步骤如下:
1.从缓存中删除执行计划
2.下次运行时,对象就会自动编译生成新的计划

sp_recompile 语法说明:

    sp_recompile [@objname=]'object'  
   

—-参数说明—-
@objname:
此处可输出数据库中的存储过程、触发器、表、视图、自定义函数、其它名称
数据类型:
nvarchar(776)

1.当此处输入 存储过程、触发器、自定义函数时,那么当运行这些对象时,sql引擎会自动重编译这些对象
2.当此处输入 表 视图时,所有引用这些表或视图的存储过程 触发器 函数都将在运行时,进行重编译。


sp_recompile 举例应用

 
    EXEC sp_recompile N'数据表名称';  
     GO  

复制