Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plsql Oracle-如何获取有关索引字段等的信息_Plsql_Oracle10g - Fatal编程技术网

Plsql Oracle-如何获取有关索引字段等的信息

Plsql Oracle-如何获取有关索引字段等的信息,plsql,oracle10g,Plsql,Oracle10g,如何列出Oracle中容易定义的索引列 在select语句中如何使用这些索引?比如: SELECT x, y, z FROM a WITH INDEX(x)... 如何列出Oracle中容易定义的索引列 如何在select语句中使用这些索引 你什么都不用做。如果索引将加快查询速度,Oracle将自动使用它。如果要强制使用特定索引,请在查询中添加提示: select /*+ index(tble_name indx_name) */ col1, col2 from tble_name 这将

如何列出Oracle中容易定义的索引列

在select语句中如何使用这些索引?比如:

SELECT x, y, z FROM a WITH INDEX(x)...
如何列出Oracle中容易定义的索引列

如何在select语句中使用这些索引


你什么都不用做。如果索引将加快查询速度,Oracle将自动使用它。

如果要强制使用特定索引,请在查询中添加提示:

select /*+ index(tble_name indx_name) */
col1, col2
from tble_name

这将强制使用名为indx_name的索引。

此查询还显示基于函数的索引的列表达式(如果有):

SELECT table_name AS TABELA,
  index_name      AS INDICE,
  column_position AS POSICAO,
  column_name     AS COLUNA
FROM dba_ind_columns
WHERE (TABLE_OWNER LIKE upper('%&proprietario.%'))
AND (table_name LIKE upper('%&tabela.%'))
ORDER BY TABELA,
  INDICE,
  POSICAO,
  COLUNA;
SELECT
 i.table_owner,
 i.table_name,
 i.index_name,
 i.uniqueness,
 c.column_name,
 f.column_expression
FROM      all_indexes i
LEFT JOIN all_ind_columns c
 ON   i.index_name      = c.index_name
 AND  i.owner           = c.index_owner
LEFT JOIN all_ind_expressions f
 ON   c.index_owner     = f.index_owner
 AND  c.index_name      = f.index_name
 AND  c.table_owner     = f.table_owner
 AND  c.table_name      = f.table_name
 AND  c.column_position = f.column_position
WHERE i.table_owner LIKE UPPER('%someuserpattern%')
 AND  i.table_name  LIKE UPPER('%sometablepattern%')
ORDER BY i.table_owner, i.table_name, i.index_name, c.column_position

他写道,作为一名马匹,你可以使用所有的索引列

无论如何,我建议使用Oracle SQL developer:这是一个免费工具。您可以在GUI中获取所有索引信息

您可以缩放特定索引,其中包括:

SELECT * FROM all_ind_columns
WHERE table_name = 'TABLE_NAME'
and index_name = 'INDEX_NAME'
order by Column_position
我不同意你的看法,你什么都不用做。。 我经常看到请求被写为:

WHERE Trim(LastName) ='SMITH'
WHERE LastName like '%SMITH%'
WHERE trunc(CreationDate) = date'2016-09-23'
即使列LastName和CreationDate被编入索引,Oracle也无法使用它们

WHERE LastName like 'SMITH%'
WHERE CreationDate between date'2016-09-23' and date'2016-09-24'

这有助于我显示所有索引,替换为您的详细信息:

SELECT * FROM all_ind_columns
WHERE TABLE_NAME IN 
(SELECT DISTINCT TABLE_NAME from all_indexes where owner = '<INDEX_OWNER>')
order by TABLE_NAME;

显示表、索引和以逗号分隔的索引列列表的脚本

设置页面大小50000 设置行大小32000 col table_名称格式a30 col index_名称格式a30 col主密钥名称格式a30 col唯一性格式a10 列格式a200 选择ui.table\u名称, ui.index_名称, uc.constraint\u name作为主键\u name, 唯一性, listaggaic.column_name,,'在组顺序中按aic.column_位置作为列 从用户界面 内部联接aic.index\u name=ui.index\u name上的所有索引列aic 左外部联接用户约束uc on uc.index\u name=ui.index\u name和uc.constraint\u type='P' 按ui.table\u名称、ui.index\u名称、ui.university、uc.constraint\u名称分组 按表格名称排序;
回答得很好。请避免使用葡萄牙语,并在堆栈溢出时使用英语?这是一个国际网站
SELECT * FROM all_ind_columns
WHERE TABLE_NAME IN 
(SELECT DISTINCT TABLE_NAME from all_indexes where owner = '<INDEX_OWNER>')
order by TABLE_NAME;
TABLE_NAME                     INDEX_NAME                     PRIMARY_KEY_NAME               UNIQUENESS COLUMNS                                 
------------------------------ ------------------------------ ------------------------------ ---------- ----------------------------------------
ACTIVEMQ_ACKS                  ACTIVEMQ_ACKS_PK               ACTIVEMQ_ACKS_PK               UNIQUE     CONTAINER, CLIENT_ID, SUB_NAME, PRIORITY
ACTIVEMQ_ACKS                  ACTIVEMQ_ACKS_XIDX                                            NONUNIQUE  XID                                     
ACTIVEMQ_CONNECTION            ACTIVEMQ_CONNECTION_NAME_UK                                   UNIQUE     NAME                                    
ACTIVEMQ_CONNECTION            ACTIVEMQ_CONNECTION_PK         ACTIVEMQ_CONNECTION_PK         UNIQUE     ID                                      
ACTIVEMQ_MSGS                  ACTIVEMQ_MSGS_CIDX                                            NONUNIQUE  CONTAINER                               
ACTIVEMQ_MSGS                  ACTIVEMQ_MSGS_EIDX                                            NONUNIQUE  EXPIRATION                              
ACTIVEMQ_MSGS                  ACTIVEMQ_MSGS_MIDX                                            NONUNIQUE  MSGID_PROD, MSGID_SEQ                   
ACTIVEMQ_MSGS                  ACTIVEMQ_MSGS_PIDX                                            NONUNIQUE  PRIORITY                                
ACTIVEMQ_MSGS                  ACTIVEMQ_MSGS_PK               ACTIVEMQ_MSGS_PK               UNIQUE     ID                                      
ACTIVEMQ_MSGS                  ACTIVEMQ_MSGS_XIDX                                            NONUNIQUE  XID                                     
ACT_EVT_LOG                    SYS_C00444651                  SYS_C00444651                  UNIQUE     LOG_NR_                                 
ACT_GE_BYTEARRAY               ACT_IDX_BYTEAR_DEPL                                           NONUNIQUE  DEPLOYMENT_ID_                          
ACT_GE_BYTEARRAY               SYS_C00444634                  SYS_C00444634                  UNIQUE     ID_                                     
ACT_GE_PROPERTY                SYS_C00444632                  SYS_C00444632                  UNIQUE     NAME_                                   
ACT_HI_ACTINST                 ACT_IDX_HI_ACT_INST_END                                       NONUNIQUE  END_TIME_                               
ACT_HI_ACTINST                 ACT_IDX_HI_ACT_INST_EXEC                                      NONUNIQUE  EXECUTION_ID_, ACT_ID_                  
ACT_HI_ACTINST                 ACT_IDX_HI_ACT_INST_PROCINST                                  NONUNIQUE  PROC_INST_ID_, ACT_ID_