--查看表的索引使用情况SELECT TOP 1000o.name AS 表名, i.name AS 索引名, i.index_id AS 索引id, dm_ius.user_seeks AS 搜索次数, dm_ius.user_scans AS 扫描次数, dm_ius.user_lookups AS 查找次数, dm_ius.user_updates AS 更新次数, p.TableRows as 表行数, 'DROP INDEX ' + QUOTENAME(i.name)+ ' ON '…
查索引使用情况:    https://www.cnblogs.com/sunliyuan/p/6559354.html select db_name(database_id) as N'TOPK_TO_DEV',  --库名         object_name(a.object_id) as N'TopProjectNew',  --表明         b.name N'索引名称',         user_seeks N'用户索引查找次数',         user_scans N…
mysql中支持hash和btree索引.innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引 我们可以通过下面语句查询当前索引使用情况: show status like '%Handler_read%'; +-----------------------+-------+| Variable_name | Value |+-----------------------+-------+| Handler_read_first | 0…
MySQL 5.7以后怎么查看索引使用情况? 0.在sys库中查看没用的索引 root@localhost [sys]>select * from schema_unused_indexes; +-------------------+-------------+------------+ | object_schema | object_name | index_name | +-------------------+-------------+------------+ | sysbench…
索引可以提高数据的检索效率,也可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本.排序分组操作主要消耗的就是CPU资源和内存,所以能够在排序分组操作中好好的利用索引将会极大地降低CPU资源的消耗. 如何判定是否需要创建索引? 1.较频繁地作为查询条件的字段 这个都知道.什么是教频繁呢?分析你执行的所有SQL语句.最好将他们一个个都列出来.然后分析,发现其中有些字段在大部分的SQL语句查询时候都会用到,那么就果断为他建立索引. 2.唯一性太差的字段不适合建立索引 什么是唯一性太差的字段.…
1.环境介绍 测试环境 SQL2005 测试数据 200W条 2.环境准备 2.1建表 CREATE TABLE [dbo].[Depratments](         [Dep_id] [int] NOT NULL,         [Dep_name] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY] 2.2创建数据 create procedure ins_Depratments as         decl…
show status like 'Handler_read%'; Handler_read_key  代表着一个行被索引值读取的次数,值很低表明索引不经常用到,增加索引对性能改善不高. Handler_read_rnd_text  代表着在数据文件中读取下一行的请求数,如果进行大量的表扫描,Handler_read_rnd_next的会很高,说明表索引不正确或写入的查询没有利用索引.…
MSSQL优化之——查看语句执行情况 在写SQL语句时,必须知道语句的执行情况才能对此作出优化.了解SQL语句的执行情况是每个写程序的人必不可少缺的能力.下面是对查询语句执行情况的方法介绍. 一.设置STATISTICS STATISTICS选项有PROFILE,IO ,TIME. SET STATISTICS PROFILE ON:显示每个查询执行后的结果集,代表查询执行的配置文件. SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数.逻辑读取数(在高速缓存中访问的页数…
前言: 在前面一文中,已经提到了三类常见的索引问题,那么问题来了,当系统出现这些问题时,该如何应对? 简单而言,需要分析现有系统的行为,然后针对性地对索引进行处理: 对于索引不足的情况:检查缺少索引的情况,也需要检查现有索引定义是否有问题. 对于索引过多的情况:分析每一个索引的使用情况,判断是否有存在的必要或者可合并.可修改的可能. 对于索引不合理的情况:也要分析每个索引的定义,及其使用情况,确定索引是否有存在必要,如果有,是否能很好地支持查询并且对现有系统的影响也不大. 从上面描述可知,我们的…
http://luohonghong.blog.163.com/blog/static/78312058201142411533316/ SQLServer查看和解决死锁的方法 2011-05-24 11:05:33|  分类: SQL|字号 订阅     在master数据库中新建以下存储过程 --处理死锁-- 查看当前进程,或死锁进程,并能自动杀掉死进程-- 因为是针对死的,所以如果有死锁进程,只能查看死锁进程-- 当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程--调用示例 ex…
原文:如何获得SQL Server索引使用情况 原文出自: http://www.mssqltips.com/sqlservertip/1239/how-to-get-index-usage-information-in-sql-server/ 问题: 数据库有两大存储需要:数据页和索引页.在你的表中理解和查看实际的数据,是相当简单的.通过运行一些查询示例来了解哪些列被使用,以及什么类型的数据实际上是被存储.一方面,很难知道索引实际上是如何被使用和怎么使用的.所以你应该如何更好地理解索引的使用及…
前面的话 本文将详细介绍MongoDB数据库索引构建情况分析 概述 创建索引可以加快索引相关的查询,但是会增加磁盘空间的消耗,降低写入性能.这时,就需要评判当前索引的构建情况是否合理.有4种方法可以使用 1.mongostat工具 2.profile集合介绍 3.日志 4.explain分析 mongostat mongostat是mongodb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取mongodb的当前运行状态,并输出.如果发现数据库突然变慢或者有其他问题的话,首先就要考虑采用…
本文出处:http://www.cnblogs.com/wy123/p/7650215.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 上午(20171011)看到qq群里发了一个云栖大会的链接,点进去看了一下sqlserver的专场,刚好是提问环节有人问了一个问题,原话记不清楚了,大概的意思(他自己认为)就是说:“SQLServer中重建聚集索引之后会影响非聚集索引的碎片情况,也要顺带重建非聚集索引”我想…
索引好处:加快索引相关的查询 坏处:增加磁盘空间消耗,降低写入性能 评判当前索引构建情况:     1. mongostat工具介绍     2. profile集合介绍     3. 日志介绍     4. explain分析 1. mongostat工具     mongostat:查看MongoDB运行状态程序.     使用:mongostat -h 127.0.0.1:12345 输出字段说明  --help  Fields    inserts     - # of inserts…
前言 平常使用linux,我们经常需要查看哪个服务占用了哪个端口,接下来就为大家介绍了2种 Linux 查看端口占用情况可以使用 lsof 和 netstat 命令. 1. lsof -i:端口号 用于查看某一端口的占用情况 安装 需要注意的是,centos系统默认是没有安装lsof(list open files)的,需要手动安装 yum install lsof 案例 查看服务器 8000 端口的占用情况: 各列代表的含义: COMMAND:进程的名称 PID:进程标识符 USER:进程所有…
监控当前业务用户索引 一段时间后查询从未被使用的索引,删除无用索引 停止监控索引 1. 监控当前用户所有索引 得到监控所有索引的语句: select 'alter index ' || index_name || ' monitoring usage;' from user_indexes; 2. 一段时间后查询从未被使用的索引,删除无用索引 注意:视具体业务情况,选择一周后,一月后,两月后(总之要保证应用的所有SQL都至少跑一遍) 2.1 查看这段时间内,从未被使用的索引: select *…
SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方面结合上下文具体场景做了下测试.总结.归纳. 1:隐式转换会导致执行计划从索引查找(Index Seek)变为索引扫描(Index Scan) Implicit Conversion will cause index scan instead of index seek. While implicit conversions occur in SQL Serve…
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  );   我们随机向里面插入了10000条记录,其中有一条:5555, admin. 在查找username="admin"的记录…
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  );   我们随机向里面插入了10000条记录,其中有一条:5555, admin. 在查找username="admin"的记录…
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多).如果对之建立B-Tree索引,则只需要进行log100(10…
同步发布:http://www.yuanrengu.com/index.php/2017-01-13.html 一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大.但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须瑶考虑优化sql了,给数据库建立…
mysql explain的使用: http://blog.csdn.net/kaka1121/article/details/53394426 索引类型 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表 代码如下: CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  ); 我们随机向里面插入了10000条记录,其中有一条:5555, admin. 在查找use…
在Sqlsever数据库中,有时候操作数据库过程中会进行锁表操作,在锁表操作的过程中,有时候会出现死锁的情况出现,这时候可以使用SQL语句来查询数据库死锁情况,主要通过系统数据库Master数据库来查询,涉及到的系统数据表有dm_exec_requests.dm_exec_sessions.dm_exec_sql_text等几个表. SQL查询语句如下: SELECT es.session_id, database_name = DB_NAME(er.database_id), er.cpu_t…
目录结构: contents structure [-] 聚集索引和非聚集索引的区别 聚集索引和主键的区别 主键和(非)聚集索引的常规操作 聚集索引.非聚集索引在SqlServer.MySQL.Oracle...等数据库中都有这个概念,只不过在SqlServer中叫做聚集索引和非聚集索引而已.下面笔者将会以SqlServer数据库来讲解. 1.聚集索引和非聚集索引的区别 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物理顺序.非聚集索引:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同.索…
使用explain查看,如下 1.首先创建表test,语句如下 create table test(a int,b varchar(10),c varchar(10)); 2.在表中的a,b都创建索引,先后顺序是a,b create index idx_a_b on test(a,b); 3.分别往里面插入三条数据,插入后结果如下: 4.使用explain查询,查看索引使用情况(这里还可以进行多次其他sql语句的查询,查看索引利用情况) 从上面可以看到key_len使用的长度为38(字节),那么…
netstat -ntlp 查看端口使用情况! netstat -ntlp | grep 80 查看具体的端口是否使用! # netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 2247/redis-server…
1.对返回的行无任何限定条件,即没有where子句 2.未对数据表与任何索引主列相对应的行限定条件例如:在City-State-Zip列创建了三列复合索引,那么仅对State列限定条件不能使用这个索引,因为State不是索引的主列. 3.对索引的主列有限定条件,但是在条件表达式里使用以下表达式则会使索引失效,造成全表扫描:(1)where子句中对字段进行函数.表达式操作,这将导致引擎放弃使用索引而进行全表扫描,Demo:where upper(city)='TokYo' 或 City || 'X…
1.1 在独立服务器上面建立索引 在独立服务器上面创建索引,可以在空闲时间于后台建立索引. 在后台建立索引,可利用background:true参数运行 >db.foo.ensureIndex({"somefield":1,{:background":true}) 1.任何类型的索引均可在后台完成建立 2.前台建立索引耗时少,但是索引建立期间会锁定数据库,导致其他操作无法进行数据读写 3.后台建立索引期间,则会定期释放写锁,从而保证其他操作的运行 1.2 在副本集上建立…
说明 在MySQL中,并不是你建立了索引,并且你在SQL中使用到了该列,MySQL就肯定会使用到那些索引的,有一些情况很可能在你不知不觉中,你就“成功的避开了”MySQL的所有索引. 索引列参与计算 如果where条件中age列中使用了计算,则不会使用该索引.如果需要计算,千万不要计算到索引列,想方设法让其计算到表达式的另一边去. SELECT `sname` FROM `t_stu` WHERE `age`=20; -- 会使用索引 SELECT `sname` FROM `t_stu` WH…
1.隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误.   由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给Oracle,这样会导致索引失效.  错误的例子:select * from test where tu_mdn=13333333333;  正确的例子:select * from test where tu_mdn='13333333333';   2. 对索引列进行运算导致索引失效,我所指的对索引列进行…