加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_运城站长网 (https://www.0359zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 索引——的创建、删除、何时使用、索引查询语句

发布时间:2022-10-05 15:30:43 所属栏目:MsSql教程 来源:
导读:  1.SQL 创建索引

  使用CREATE 语句创建索引

  CREATE INDEX index_name ON table_name(column_name,column_name) include(score) ---普通索引

  CREATE UNIQUE INDEX index_name ON table_nam
  1.SQL 创建索引
 
  使用CREATE 语句创建索引
 
  CREATE INDEX index_name ON table_name(column_name,column_name) include(score) ---普通索引
 
  CREATE UNIQUE INDEX index_name ON table_name (column_name) ;---非空索引
 
  CREATE PRIMARY KEY INDEX index_name ON table_name (column_name) ;---主键索引
 
  使用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) ;
 
  2.删除索引
 
  drop index index_name on table_name ;
 
  alter table table_name drop index index_name ;
 
  alter table table_name drop primary key ;
 
  3.当需要快速找出在某个列中有一特定值的行
 
  例如:有一张person表,其中有2W条记录,记录着2W个人的信息。有一个Phone的字段记录每个人的电话号码,现在想要查询出电话号码为xxxx的人的信息。
 
  如果没有索引mssql 索引,那么将从表中第一条记录一条条往下遍历,直到找到该条信息为;
 
  如果有了索引,那么会将该Phone字段,通过一定的方法进行存储,好让查询该字段上的信息时,能够快速找到对应的数据,而不必在遍历2W条数据了。
 
  4.索引查询
 
  SQL Server数据库索引信息查询
 
  -- 查看某個表的索引
 
  SELECT * FROM sys.sysindexes
 
  WHERE id=object_id('RelactionGraph')
 
  -- 查看整個庫的索引
 
  SELECT * FROM sys.sysindexes
 
  -- 查看所有庫的索引
 
  IF object_id('tempdb..#')IS NOT NULL
 
  DROP TABLE #
 
  SELECT * INTO # FROM sys.sysindexes WHERE 1=2
 
  INSERT INTO #
 
  EXEC sys.sp_MSforeachdb @command1='Select * from ?.sys.sysindexes'
 
  SELECT * FROM #
 
  Oracle数据库索引信息查询
 
  oracle对于数据库中的表信息,存储在系统表中。查询已创建好的表索引,可通过相应的sql语句到相应的表中进行快捷的查询:
 
  1. 根据表名,查询一张表的索引
 
  select * from user_indexes where table_name=upper('party_customer');
 
  2. 根据索引号,查询表索引字段
 
  1 select * from user_ind_columns where index_name=('索引名');
 
  3.根据索引名,查询创建索引的语句
 
  select dbms_metadata.get_ddl('INDEX','SQL100310102315181') from dual ; --['用户名']可省,默认为登录用户
 
  PS:dbms_metadata.get_ddl还可以得到建表语句,如:
 
  SELECT DBMS_METADATA.GET_DDL('TABLE','表名', ['用户名']) FROM DUAL ;//取单个表的建表语句,['用户名']可不输入,默认为登录用户
 
  SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; //取用户下所有表的建表语句
 
  当然,也可以用pl/sqldeveloper工具来查看相关的表的各种信息。
 
  查询用户的索引
 
  select index_name,table_name,tablespace_name,
 
  index_type,uniqueness , status
 
  from dba_indexes where owner='TPSHDEV';
 
  查询用户的索引列
 
  select index_name,table_name,column_name,
 
  index_owner,table_owner
 
  from dba_ind_columns
 
  where table_owner='TPSHDEV';
 
  查询Orcale数据库执行计划
 
  EXPLAIN PLAN FOR
 
  SELECT * FROM PARTY_CUSTOMER WHERE ID = '000000003034' ; --要解析的SQL脚本
 
  SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
 

(编辑:开发网_运城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!