通过执行以下命令将列出在我的模式中找到的所有索引,查询不会返回任何内容 - 表示要么没有创建索引,要么可能没有足够的权限。任何表中都没有找到索引 - 是否有可能?
select * from user_indexes;
是否有更多的方式来列出我在模式中的索引?
通过执行以下命令将列出在我的模式中找到的所有索引,查询不会返回任何内容 - 表示要么没有创建索引,要么可能没有足够的权限。任何表中都没有找到索引 - 是否有可能?
select * from user_indexes;
是否有更多的方式来列出我在模式中的索引?
确定这是可能的。
常见,甚至:)
这只是表示没有人创建任何索引。
如果查询没有返回任何内容,这意味着您拥有权限......并且根本没有任何索引。
下面是关于“在甲骨文管理索引”一个很好的链接(这听起来像你可能运行的Oracle):
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/indexes.htm
paulsm4,我找到了你的答案Jovial,哈哈。那么我需要非常肯定这不是由于一些权限或不是,我会检查你的链接。 –
由于paulsm4说,你没有任何索引架构中的。
可以使用
select * from all_indexes;
,你会看到所有的索引+,你有权利的人。
感谢buddy for all_indexes! –
弗罗林是正确的,USER_INDEXES是ALL_INDEXES上的一个视图,它只显示那些由你创建的视图。您可以直接查询ALL_INDEXES以确定其他人是否已在所讨论的表上创建索引,但是您可能希望为table_name添加where子句,因为它将列出实例中所有表的所有索引,并且仅列出一些列。
SELECT TABLE_NAME, INDEX_NAME FROM ALL_INDEXES WHERE TABLE_NAME='XYZ';
您可以限制其使用,如果有一个条款表是几个表你有兴趣
SELECT TABLE_NAME, INDEX_NAME FROM ALL_INDEXES WHERE TABLE_NAME IN ('ABC','XYZ');
,如果有一个前缀或后缀
你可以使用一个类似条款SELECT TABLE_NAME, INDEX_NAME FROM ALL_INDEXES WHERE TABLE_NAME like 'XYZ%';
另外,如果您想查看这些索引在哪些列上,您可以从ALL_IND_COLUMNS中进行选择;
SELECT * FROM ALL_IND_COLUMNS WHERE TABLE_NAME='XYZ'
请注意,表是否有索引与否取决于数据和使用情况。可能有一百行或更少的小查找表不需要索引,而包含数百万行但在需要时仅查询少数几行的表就需要索引。
没有索引意味着没有键,意味着它们不是关系表,意味着它可以说根本不是一个模式;) – onedaywhen