仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1305|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL编程:有用SQL: 经由过程向表加clusted索引重整数...

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:50:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你可以配置MySQL运行在微小的嵌入式应用程序中,处理的数据可能不足1Mb??而你也可以用它来处理数Tb的数据。MySQL获得这种可扩展性的路径之一是通过一个人们所熟知的存储过程,这是一个运行在程序之外的微型、预编译程序。数据|数据库|索引
--
--ArrangeDB.SQL重整数据库
--
--CopyRights@2003.12.29DigitalChinaManagementSystemCo.,Ltd.
--
--重整流程:把一切用户表增添clustered索引,如许SQL SERVER会重整表,然后
-- 再删除索引
--
--利用机会:一样平常保护,倡议每周做一次重整。
--
--注重事项:做完后请做数据库压缩,更新统计,从头索引,及完全性反省 

--droptable#dcms_index_info
--要用到的一时表
createtable#dcms_index_info
(
index_namesysname,
index_descriptionvarchar(210),
index_keysvarchar(2078)
)

--设置情况
setNOCOUNTON
--程序入手下手:变量
declare@sqlvarchar(500)
declare@TableNamevarchar(20)
declare@ErrorSaveint

--用一切的用户表处置
declareCursor1Cursor
for
selectnamefromsysobjectswherextype=Uorderbyname

openCursor1
fetchnextfromCursor1into@TableName

while@@fetch_status=0
begin
--为了检测表中是否是有CREATE_DATE这个列,易飞的表中都有,假如没有就跳过,不外处置
--应当另有更好的办法,我临时如许用了。不想用sp_columns由于不想建表,慢就慢点吧
ifCOLUMNPROPERTY(OBJECT_ID(@TableName),CREATE_DATE,PRECISION)isnotnull
begin
printprocesstable+@TableName

--获得以后表的索引信息
delete#dcms_index_info
set@sql=sp_helpindex+@TableName+
insertinto#dcms_index_infoexec(@sql)

--查找是否是已有聚簇索引(clustered),假如已有了就不做,在易飞中有clustered索引是多数
selectindex_namefrom#dcms_index_infowhereindex_descriptionlikeclustered%

if@@ROWCOUNT=0
begin
set@sql=createclusteredindexDcTempIndex001on+@TableName+(CREATE_DATE)
exec(@sql)

set@sql=DROPindex+@TableName+.DcTempIndex001
exec(@sql)
end
end

fetchnextfromCursor1into@TableName
end

droptable#dcms_index_info
closeCursor1
deallocateCursor1

解决方案提供商开始推动DBaaS浪潮之前,他们应该深入了解究竟什么是DBaaS。
小魔女 该用户已被删除
沙发
发表于 2015-1-20 05:39:56 来自手机 | 只看该作者
呵呵,这就是偶想说的
板凳
发表于 2015-1-28 19:10:51 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
活着的死人 该用户已被删除
地板
发表于 2015-2-5 22:35:48 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
谁可相欹 该用户已被删除
5#
发表于 2015-2-13 23:53:18 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
分手快乐 该用户已被删除
6#
发表于 2015-3-4 03:16:40 | 只看该作者
还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-11 15:45:41 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
只想知道 该用户已被删除
8#
发表于 2015-3-19 01:33:09 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
柔情似水 该用户已被删除
9#
发表于 2015-3-27 02:08:05 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表