sqlserver语句总结

动态查询
declare @sql = select * from table;
exec(@sql)


统计信息会在每个新创建的索引中自动创建统计信息。
如果数据库中AUTO_CREATE_STATISTICS被设置为ON,SQLServer将会自动对查询中用到的,且没有索引的列自动创建统计信息。
--Create statistics on all rows

CREATE STATISTICSstatistics_name   ONYourDBName.YourSchema.YourTable(YourColumn1,YourColumn2)  
WITH FULLSCAN

 --Create statistics using a random 10 percent sampling rate

CREATE STATISTICSstatistics_name   ONYourDBName.YourSchema.YourTable(YourColumn1,YourColumn2)   
WITH SAMPLE 10PERCENT
sp_updatestats存储过程来实现
1.聚集索引 :在聚集索引中,表中各行的物理顺序与键值的逻辑顺序相同。一个表中只可以有一个聚集索引。  如果表中有聚集索引,则该表为聚集表,如果没有则为堆的无序结构表。

2.非聚集索引:具有独立数据行的结构。包含非聚集索引键值,并且每个索引键值都有指向包含键值的数据行的指针。

select OBJECT_NAME(ix.object_id),ix.index_id,ix.name 
from sys.indexes as ix
where ix.object_id = object_id('test');
sys.indexes
index_id =0:堆--表没有聚集索引,会自动添加类型为0的索引,一开始应该是堆表。加了聚集索引了,就成聚集索引表。
index_id =1:聚集索引
index_id =2.....:非聚集索引
      
sp_helpindexs 'table_name'
exec sp_helpindex test
select * from sys.indexes where name='Clus_uniq_index_id'
--表对应的所有索引
select o.name,i.name 
from sys.objects o 
join sys.indexes i
on o.object_id=i.object_id 
where o.name='tb'
查看统计信息
select * from sys.stats s   
join  sys.objects  o                                                                                   
on s.object_id=o.object_id
where o.name='tb'
————————————————
结论:重组索引(Reorganize Index)不会触发对应索引的统计信息更新. 也不会触发其它统计信息更新。也就说,重组索引(Reorganize Index)不会触发任何统计信息更新。
结论:重建索引(Rebuild Index)会触发对应索引的统计信息更新。但是,重建索引(Rebuild Index)不会触发其它统计信息更新。
堆表并不是B树结构。
dbcc show_statistics('db.dba.table',index_phone)
--列出表中的所有统计信息
select * from sys.stats where object_id=OBJECT_ID(N'[Sales].[SalesOrderDetail]')
--查看统计信息及其列
SELECT s.name AS statistics_name ,c.name AS column_name ,sc.stats_column_id
FROM sys.stats AS s
INNER JOIN sys.stats_columns AS sc ON s.object_id = sc.object_id AND s.stats_id = sc.stats_id
INNER JOIN sys.columns AS c  ON sc.object_id = c.object_id AND c.column_id = sc.column_id
WHERE s.object_id = OBJECT_ID(N'[Sales].[SalesOrderDetail]');
 
--查看所有统计信息更新时间
exec sp_helpstats N'[Sales].[SalesOrderDetail]', 'ALL'
————————————————
还可以使用命令DBCC SHOW_STATISTICS查看,以下为列。
DBCC SHOW_STATISTICS('[Sales].[SalesOrderDetail]','IX_SalesOrderDetail_ProductID')

sp_helptext sp_name
select * from sys.sql_modules
SELECT OBJECT_DEFINITION( OBJECT_ID(‘CountProc’));

exec sp_help 'view'
exec sp_helptext 'view'


--数据库修复:
--查看错误信息
dbcc checkdb;
DBCC CHECKDB WITH NO_INFOMSGS;
--数据库修复
EXEC sp_dboption 'pg', 'single user', 'TRUE'  
dbcc checkdb ('pg',REPAIR_REBUILD)           -------执行不会丢失数据的修复
dbcc checkdb('pg',repair_allow_data_loss)  -------修复数据库
EXEC sp_dboption 'pg', 'single user','FALSE'

--表修复

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值