问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

mysql索引怎么重建,或者重新收集索引统计信息

发布网友 发布时间:2022-04-07 18:43

我来回答

2个回答

懂视网 时间:2022-04-07 23:04

功能描述:自动重新组织或重新生成数据库中平均碎片超过 10% 的所有分区。 执行此查询需注意以下几点: 1)、需要 VIEW DATABASE STATE 权限。 2)、在不指定数据库名称的情况下,指定 DB_ID 作为第一个参数。 3)、确定当前数据库为80以上。 */ USE MASTER SET NOCOUNT ON; DECLARE @objectid int; DECLARE @indexid int; DECLARE @partitioncount bigint; DECLARE @schemaname nvarchar(130); DECLARE @objectname nvarchar(130); DECLARE @indexname nvarchar(130); DECLARE @partitionnum bigint; DECLARE @partitions bigint; DECLARE @frag float; DECLARE @command nvarchar(4000); SELECT object_id AS objectid, index_id AS indexid, partition_number AS partitionnum, avg_fragmentation_in_percent AS frag INTO #work_to_do FROM sys.dm_db_index_physical_stats (db_id(), NULL, NULL , NULL, ‘LIMITED‘) WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0; DECLARE partitions CURSOR FOR SELECT * FROM #work_to_do; OPEN partitions; WHILE (1=1) BEGIN; FETCH NEXT FROM partitions INTO @objectid, @indexid, @partitionnum, @frag; IF @@FETCH_STATUS < 0 BREAK; SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name) FROM sys.objects AS o JOIN sys.schemas as s ON s.schema_id = o.schema_id WHERE o.object_id = @objectid; SELECT @indexname = QUOTENAME(name) FROM sys.indexes WHERE object_id = @objectid AND index_id = @indexid; SELECT @partitioncount = count (*) FROM sys.partitions WHERE object_id = @objectid AND index_id = @indexid; IF @frag < 30.0 SET @command = N‘ALTER INDEX ‘ + @indexname + N‘ ON ‘ + @schemaname + N‘.‘ + @objectname + N‘ REORGANIZE‘; IF @frag >= 30.0 SET @command = N‘ALTER INDEX ‘ + @indexname + N‘ ON ‘ + @schemaname + N‘.‘ + @objectname + N‘ REBUILD‘; IF @partitioncount > 1 SET @command = @command + N‘ PARTITION=‘ + CAST(@partitionnum AS nvarchar(10)); EXEC (@command); PRINT N‘Executed: ‘ + @command; END; CLOSE partitions; DEALLOCATE partitions; DROP TABLE #work_to_do; GO

 

数据库重组或者重建索引

标签:

热心网友 时间:2022-04-07 20:12

需要重新创建索引,因为长度不同会认为是两个不同的所索引。
创建和删除索引
索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。删除索引可以利用ALTER TABLE或DROP INDEX语句来实现。

(1)使用ALTER TABLE语句创建索引。
语法如下:
alter table table_name add index index_name (column_list) ;
alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
其中包括普通索引、UNIQUE索引和PRIMARY KEY索引3种创建索引的格式,table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以同时创建多个索引。
创建索引的示例如下:
mysql> use tpsc
Database changed
mysql> alter table tpsc add index shili (tpmc ) ;
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0

(2)使用CREATE INDEX语句对表增加索引。
能够增加普通索引和UNIQUE索引两种。其格式如下:
create index index_name on table_name (column_list) ;
create unique index index_name on table_name (column_list) ;
说明:table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。

(3)删除索引。
删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:
drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
其中,在前面的两条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。
如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。
删除索引的操作,如下面的代码:
mysql> drop index shili on tpsc ;
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0
该语句删除了前面创建的名称为“shili”的索引。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
嘴巴是黄色的两鬓各一处白色羽毛肚子是灰白色羽毛腿是黄色的 鸟儿对我们有哪些好处? ...是怎么回事?汽车启动时在驾驶舱听到响声,好似拖拉机烟囱里发出... 软电脑各个时代的开机画面如何设置电脑开机画面 ...器空间、外部数据存储器空间和位地址空间的 饿了么微信支付怎么开通 微信支付开通方式分享 饿了么怎样绑定微信? 梦见不认识的拘给它洗澡身上长蛆 与朋友交而不信乎信的意思是什么 与朋友交而不信乎信的意思 浙江农信如何查询余额 查询余额方法 因为高一历史地理*没好好学现在暑假想补习下,求知识点总结 男生女生都很喜欢的帕拉梅拉,到底优秀在哪? 保时捷Panamera到底有何魅力? 新教材历史必修一复习提纲 承载四门跑车梦想,帕拉梅拉10周年纪念版实车首发 能跑能装有逼格,保时捷帕拉梅拉,百万级别绕不开的选择 保时捷帕拉梅拉为什么被称为“小哥哥的骄傲”、“小姐姐的最爱”? 看图说话写话训练二年级上册警察和小女孩 部编版二年级语文看图写话习题 二年级语文看图写话练习题《小猴学艺》讲解 华为路由器2j5G什么意思 你好,请问你有外语教学与研究出版社版的七年级下英语知识点总结吗 初一英语(仁爱版)语法总结 义务教育课程标准实验教科书英语七年级下册第五单元总结 急求牛津上海版小学英语六年级下学期(6B)和七年级下学期(7B)的短语总结 七年级英语下册unit6topic2b教学反思 初一英语总结怎么写,告诉我过程即可。 七年级下册英语总结 ;十单元 七年级计算机期末考试复习题 vivo手机打电话对方怎么听不到我的声音,有时能听到声音也特别小 保时捷Panamera这款车,都有哪些亮点? 做梦梦见前女友她没穿内裤,好像以前的感觉都回来了,我们没有发生关系... 关于门面、店面尺寸的问题 一百万逃不掉的保时捷新帕拉梅拉,97.3万起,别忘要选装 商铺门开多大合适 梦见抱着自己的女友,女友没有穿裤子在路上行走 保时捷帕拉梅拉:选择丰富适合老中青,7种动力起步就是V6引擎 公司大门尺寸多大适合 梦见前男友去找我 没有穿裤子 梦见几女人下身没穿裤子!在门不让我出去是什么意思? 梦见女人没穿裤子,要逼一个男人发生关系 梦见一个女孩没穿裤子几个男人在看? 梦见别人来给我女朋友登记,说她没穿内裤? 梦到前女友没穿鞋,把自己的脱给她,她却怎么也穿着不合适 usb floppy是u盘启动吗 梦见自己儿媳妇没穿裤子买西瓜 什么是USB Floppy ? 进入BIOS后选USB启动项只有USB Floppy USB CD/DVD ROM Drive USB Dis... usbfloppy是什么 usb floppy 百度说是软驱啊,我想用u盘做系统,刚学的,呵呵,请教高手啊...
  • 焦点

最新推荐

猜你喜欢

热门推荐