转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
实用SQL: 通过向表加clusted索引重整数据库         

实用SQL: 通过向表加clusted索引重整数据库

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1035 更新时间:2007/11/14 11:49:41

--
--   ArrangeDB.SQL 重整数据库
--
--   CopyRights @2003.12.29 Digital China Management System Co., Ltd.
--
-- 重整流程:把所有用户表增加 clustered 索引,这样SQL SERVER会重整表,然后
-- 再删除索引
--
-- 使用时机:日常维护,建议每周做一次重整。
--
-- 注意事项:做完后请做数据库收缩,更新统计,重新索引,及完整性检查 

--drop table #dcms_index_info
--要用到的临时表
create table #dcms_index_info
(
  index_name sysname,
  index_description varchar(210),
  index_keys varchar(2078)
)

--设置环境
set NOCOUNT ON
--程序开始:变量
declare @sql varchar(500)
declare @TableName varchar(20)
declare @ErrorSave int

--用所有的用户表处理
declare Cursor1 Cursor
for
 select name from sysobjects where xtype=''''U'''' order by name

open Cursor1
fetch next from Cursor1 into @TableName

while @@fetch_status = 0
begin
 --为了检测表中是不是有CREATE_DATE这个列,易飞的表中都有,如果没有就跳过,不过处理
 --应该还有更好的方法,我暂时这样用了。不想用sp_columns因为不想建表,慢就慢点吧
 if COLUMNPROPERTY(OBJECT_ID(@TableName),''''CREATE_DATE'''',''''PRECISION'''') is not null
 begin
  print ''''process table '''' + @TableName

  --取得当前表的索引信息
  delete #dcms_index_info
  set @sql = '''' sp_helpindex '''''''''''' + @TableName + '''''''''''' ''''
  insert into #dcms_index_info exec (@sql)

  --查找是不是已经有聚簇索引(clustered),如果已经有了就不做,在易飞中有clustered索引是少数
  select index_name from #dcms_index_info where index_description like ''''clustered%''''

  if @@ROWCOUNT = 0
  begin
   set @sql = '''' create clustered index DcTempIndex001 on '''' + @TableName + '''' ( CREATE_DATE ) ''''
   exec (@sql)

   set @sql = '''' DROP index '''' + @TableName + ''''.DcTempIndex001 ''''
   exec (@sql)
  end
 end

 fetch next from Cursor1 into @TableName
end
 
drop table #dcms_index_info
close Cursor1
deallocate Cursor1


[Sql Server]实用SQL: 查看表字段信息  [Sql Server]实用SQL: 查看表字段信息
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台