新手求教,ORACLE多表连接查询优化
oracle吧
全部回复
仅看楼主
level 2
以下是查询语句,查询结果9000条,查询时间6秒,A,B表都是3W5数据,C表200多。
SELECT CJ_METADATAMANAGE.NEXTVAL, A.TABLE_NAME 表名,
A.COLUMN_NAME 字段名,
SUBSTR(B.COMMENTS, 0, 25) 字段中文值,
CASE
WHEN A.DATA_TYPE = 'INTEGER' THEN
1
WHEN A.DATA_TYPE = 'VARCHAR2' THEN
2
WHEN A.DATA_TYPE = 'TIMESTAMP' THEN
3
WHEN A.DATA_TYPE = 'DATE' THEN
4
WHEN A.DATA_TYPE = 'NUMBER' THEN
5
WHEN A.DATA_TYPE = 'FLOAT' THEN
6
ELSE
7
END FIELDTYPE,
C.COMMENTS 表备注,
A.DATA_LENGTH 字段长度,
ROWNUM
FROM (SELECT C.TABLE_NAME, C.COMMENTS FROM USER_TAB_COMMENTS C) C,
(SELECT B.TABLE_NAME, B.COLUMN_NAME, B.COMMENTS
FROM USER_COL_COMMENTS B,USER_TABLES D
WHERE B.TABLE_NAME=D.TABLE_NAME) B,
(SELECT A.TABLE_NAME, A.COLUMN_NAME, A.DATA_TYPE, A.DATA_LENGTH
FROM USER_TAB_COLUMNS A,USER_TABLES D
WHERE A.TABLE_NAME=D.TABLE_NAME) A
WHERE A.COLUMN_NAME = B.COLUMN_NAME
AND A.TABLE_NAME = C.TABLE_NAME
AND A.TABLE_NAME = B.TABLE_NAME;
2016年09月27日 03点09分 1
1