① sql怎麼顯示系統中所有的索引
select a.name as tabname
,h.name as idname
from sys.objects as a
right join sys.indexes as h on a.object_id=h.object_id
where a.type<>'s'
go
由於索引和系統列沒有直接對應關系 所以不能直接查看列欄位和欄位長度
② 在SQL中怎樣用指定索引查詢
一般來說在條件中使用索引對應的第一個欄位就可能會用到該索引。
微軟的SQL SERVER提供了兩種索引:聚集索引(clustered index,也稱聚類索引、簇集索引)和非聚集索引(nonclustered index,也稱非聚類索引、非簇集索引)。
索引是資料庫中重要的數據結構,它的根本目的就是為了提高查詢效率。現在大多數的資料庫產品都採用IBM最先提出的ISAM索引結構。
數據搜索實現角度
索引也是另外一類文件/記錄,它包含著可以指示出相關數據記錄的各種記錄。其中,每一索引都有一個相對應的搜索碼,字元段的任意一個子集都能夠形成一個搜索碼。這樣,索引就相當於所有數據目錄項的一個集合,它能為既定的搜索碼值的所有數據目錄項提供定位所需的各種有效支持。
以上內容參考:網路-資料庫索引
③ sql server 查看一個sql用了哪些索引
一般可以通過查看執行計劃來確定查詢使用的是什麼索引
查看執行計劃的方法是
在Server Management Studio里選中查詢語句,然後使用快捷鍵ctrl+L
顯示預計的執行計劃
如下圖,創建一個簡單的表和索引來演示查看執行計劃。
將滑鼠移到執行計劃里每個圖標上邊,可以查看每一步使用的索引,紅框里object就是所使用的索引。
④ 求sql語句:提取某個資料庫中所有表的索引名
用sys.indexes直接提取不好嗎?
SELECT
OBJECT_SCHEMA_NAME(object_id)+'.'+OBJECT_NAME(object_id)
AS
表名,name
AS
索引名
FROM
sys.indexes
WHERE
index_id<>0
AND
object_id
IN(SELECT
object_id
FROM
sys.tables)
⑤ 如何看mysql sql查詢語句用了哪些索引如何分析查詢語句
運行explain + SQL語句,例如:
explain select * from students where phone like '45%'G
圖中
possible_keys:可能被利用的索引名
key:被利用的索引名
rows:掃描的行數,1表示只掃描了一行說明充分利用了索引,此數自然越少越好
還有查詢耗時等等都可為查詢語句效率分析提供參數依據
⑥ 如何查詢sqlserver資料庫中得所有索引
select a.name as tabname
,h.name as idname
from sys.objects as a
right join sys.indexes as h on a.object_id=h.object_id
where a.type<>'s'
go
由於索引和系統列沒有直接對應關系 所以不能直接查看列欄位和欄位長度
⑦ sql server 如何創建索引和查詢索引
是創建主鍵索引吧。
用企業管理器建立:在你已經建立好的表上點擊右鍵--》設計表--》點一下工具欄上有閃電的圖標(管理索引/鍵)
用查詢分析器建立:create
nonclustered
index
索引名稱
on
表名
(
要索引的列名
)
on
[primary]
⑧ sql server 怎麼查看錶的索引
SELECT 索引名稱=a.name
,表名=c.name
,索引欄位名=d.name
,索引欄位位置=d.colid
FROM sysindexes a
JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid
JOIN sysobjects c ON b.id=c.id
JOIN syscolumns d ON b.id=d.id AND b.colid=d.colid
WHERE a.indid NOT IN(0,255)
-- and c.xtype='U' and c.status>0 --查所有用戶表
AND c.name='message' --查指定表
ORDER BY c.name,a.name,d.name
需創建索引 例如:
根據某列判斷是否有重復記錄,如果該列為非主鍵,則創建索引
根據經常查詢的列,創建索引
無須創建索引
欄位內容大部分一樣,例如:男,女
不要給所有的列都創建索引,這樣在創建新記錄時,增加維護開銷時間。
⑨ 如何查詢資料庫或者表中的索引
oracle對於資料庫中的表信息,存儲在系統表中。查詢已創建好的表索引,可通過相應的sql語句到相應的表中進行快捷的查詢:
1.
根據表名,查詢一張表的索引
select
*
from
user_indexes
where
table_name=upper('表名');
2.
根據索引號,查詢表索引欄位
select
*
from
user_ind_columns
where
index_name=('索引名');
3.根據索引名,查詢創建索引的語句
select
dbms_metadata.get_ddl('index','索引名',
['用戶名'])
from
al
;
--['用戶名']可省,默認為登錄用戶
ps:dbms_metadata.get_ddl還可以得到建表語句,如:
select
dbms_metadata.get_ddl('table','表名',
['用戶名'])
from
al
;
//取單個表的建表語句,['用戶名']可不輸入,默認為登錄用戶
select
dbms_metadata.get_ddl('table',u.table_name)
from
user_tables
u;
//取用戶下所有表的建表語句
當然,也可以用pl/sql
developer工具來查看相關的表的各種信息。