有用的SQL查询
1 、查询实例中拥有某一字段的所有表
SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHEMA.columns WHERE COLUMN_NAME='name'2、根据表名查询当前数据库中存在的所有表
select * from sysobjects where xtype='U' and name like '%salary%'3、一个实例中可能会有多个数据库,有时会忘记当前是针对哪个数据库进行查询,可以用到下面这句
--@@spid是当前用户进程的会话 ID --用此会话ID在Master..SysProcesses中查得当前用户进程使用的数据库ID --再用此数据库ID在查得Master..SysDataBases中查到对应的数据库名称 Select Name From Master..SysDataBases Where DbId=(Select Dbid From Master..SysProcesses Where Spid = @@spid)4、检查SQL查询效率前先清个缓存
DBCC FREEPROCCACHE; --删除计划高速缓存中的元素 DBCC DROPCLEANBUFFERS; --清除缓冲区5、建立复合索引,索引中两字段前后顺序与查询条件字段在数量一致的情况下,顺序不影响使用索引查询。
当复合索引中的字段数量与查询条件字段数量不一致情况下,选择性高的排前面(选择性 = 基数/总行数 * 100%)。
6、删除索引
IF EXISTS (SELECT si.name AS IndexName FROM sys.indexes AS si INNER JOIN sys.objects AS so ON si.object_id = so.object_id WHERE so.name = 'DeviceRecords' AND si.name LIKE '%IX_Clubs%')DROP index IX_Clubs ON DeviceRecords
转载于:https://www.cnblogs.com/jinshan-go/p/10766603.html
总结
- 上一篇: C和指针 (pointers on C)
- 下一篇: 数据库常用操作(未完待续)