Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Sql Oracle查询未完成_Sql_Oracle - Fatal编程技术网

Sql Oracle查询未完成

Sql Oracle查询未完成,sql,oracle,Sql,Oracle,我有一个查询,在使用select*from选择所有列时完成,但在选择一个列名时没有完成。我已经创建了必要的索引。这是我的问题 SELECT q2.ssn vn_ssn --when * here instead of column name then the query completes FROM table_0 q2 LEFT OUTER JOIN (SELECT ial_t.pin, ial_t.serial_number,

我有一个查询,在使用select*from选择所有列时完成,但在选择一个列名时没有完成。我已经创建了必要的索引。这是我的问题

    SELECT q2.ssn vn_ssn
    --when * here instead of column name then the query completes
    FROM table_0 q2
    LEFT OUTER JOIN
      (SELECT ial_t.pin,
        ial_t.serial_number,
        ial_t.surname,
        ial_t.name,
        ial_t.patronymic,
        ial_t.prev_surname
      FROM
        (SELECT pin,
          MAX(serial_number) m_serial_number
        FROM table_1
        GROUP BY pin
        ) ial_m
      INNER JOIN table_1 ial_t
      ON ial_t.serial_number = ial_m.m_serial_number
      ) ial ON q2.pincode    = ial.pin
    LEFT OUTER JOIN table_2 v_q2
    ON V_Q2.VN_TPN     = Q2.TPN
    WHERE v_q2.vn_tpn IS NULL;

** EDIT: **



     1. Plan (Select * from table_name)

            Plan hash value: 2508092269

            ---------------------------------------------------------------------------------------------------
            | Id  | Operation              | Name             | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
            ---------------------------------------------------------------------------------------------------
            |   0 | SELECT STATEMENT       |                  |   438K|   248M|       |   341K  (1)| 01:08:13 |
            |*  1 |  HASH JOIN OUTER       |                  |   438K|   248M|   193M|   341K  (1)| 01:08:13 |
            |*  2 |   HASH JOIN RIGHT OUTER|                  |   438K|   188M|    54M| 19424   (1)| 00:03:54 |
            |   3 |    TABLE ACCESS FULL   | VN_Q2            |   439K|    49M|       |  1673   (2)| 00:00:21 |
            |   4 |    TABLE ACCESS FULL   | Q2               |   438K|   139M|       |  7889   (1)| 00:01:35 |
            |   5 |   VIEW                 |                  |  6751K|   914M|       |   262K  (1)| 00:52:34 |
            |*  6 |    HASH JOIN           |                  |  6751K|   386M|   122M|   262K  (1)| 00:52:34 |
            |   7 |     VIEW               |                  |  6742K|    45M|       |   134K  (1)| 00:26:55 |
            |   8 |      HASH GROUP BY     |                  |  6742K|   109M|   458M|   134K  (1)| 00:26:55 |
            |   9 |       TABLE ACCESS FULL| IAMAS_ALL_LAST_2 |    10M|   167M|       | 90003   (1)| 00:18:01 |
            |  10 |     TABLE ACCESS FULL  | IAMAS_ALL_LAST_2 |    10M|   521M|       | 90270   (1)| 00:18:04 |
            ---------------------------------------------------------------------------------------------------

            Predicate Information (identified by operation id):
            ---------------------------------------------------

               1 - access("Q2"."PINCODE"="IAL"."PIN"(+))
               2 - access("V_Q2"."VN_TPN"(+)="Q2"."TPN")
               6 - access("IAL_T"."SERIAL_NUMBER"="IAL_M"."M_SERIAL_NUMBER")

2. Plan (Select column_name from table_name)

Plan hash value: 1784658367

------------------------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name                    | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |                         |     1 |    55 |       |   144K  (1)| 00:28:52 |
|   1 |  NESTED LOOPS OUTER            |                         |     1 |    55 |       |   144K  (1)| 00:28:52 |
|*  2 |   HASH JOIN RIGHT ANTI         |                         |     1 |    51 |  9880K|  9735   (1)| 00:01:57 |
|   3 |    INDEX FAST FULL SCAN        | VN_Q2_TPN_IDX           |   439K|  4722K|       |   301   (2)| 00:00:04 |
|   4 |    TABLE ACCESS FULL           | Q2                      |   438K|    16M|       |  7867   (1)| 00:01:35 |
|   5 |   VIEW PUSHED PREDICATE        |                         |     1 |     4 |       |   134K  (1)| 00:26:55 |
|*  6 |    HASH JOIN                   |                         |     1 |    32 |       |   134K  (1)| 00:26:55 |
|   7 |     TABLE ACCESS BY INDEX ROWID| IAMAS_ALL_LAST_2        |     2 |    50 |       |     5   (0)| 00:00:01 |
|*  8 |      INDEX RANGE SCAN          | IAMAS_ALL_LAST_2_INDEX2 |     2 |       |       |     3   (0)| 00:00:01 |
|   9 |     VIEW                       |                         |  6742K|    45M|       |   134K  (1)| 00:26:55 |
|  10 |      SORT GROUP BY             |                         |  6742K|   109M|   458M|   134K  (1)| 00:26:55 |
|  11 |       TABLE ACCESS FULL        | IAMAS_ALL_LAST_2        |    10M|   167M|       | 90003   (1)| 00:18:01 |
------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("V_Q2"."VN_TPN"="Q2"."TPN")
   6 - access("IAL_T"."SERIAL_NUMBER"="IAL_M"."M_SERIAL_NUMBER")
   8 - access("IAL_T"."PIN"="Q2"."PINCODE")

您可以使用OLAP函数替换第一个外部联接:

FROM table_0 q2
LEFT OUTER JOIN
  (
   SELECT *
   FROM
     (
      SELECT ial_t.pin,
        ial_t.serial_number,
        ial_t.surname,
        ial_t.name,
        ial_t.patronymic,
        ial_t.prev_surname,
        ROW_NUMBER() OVER (PARTITION BY pin ORDER BY serial_number DESC) AS rn
      FROM table_1
     ) ial_m
    WHERE rn = 1
  ) ial ON q2.pincode = ial.pin

如果您不需要访问选择列表中此表的任何行,只需删除此联接,它不会更改返回的行数,因为它是外部联接。

似乎有语法错误,请检查输出提示框错误控制台窗口以了解错误。例如,选择q2.ssn vn_ssn应该是q2.ssn,因为vn_ssn请同时显示查询及其执行计划。@如果是一个没有名称的马,我已经编辑了question@a_horse_with_no_name哦,对不起,我弄错了。我刚刚发布了计划。你必须发布两个计划才能看到结果differences@dnoeth您的查询在ORDER BY之前包含一个语法错误多余的“,”。您能解释一下问题出在哪里吗?@Farid:正如我在另一条评论中所写,这个问题可能是一个过时的统计数据。行号只是旧样式的MAX子查询的常见替换,用于使用MAX/min值替换行的givemeall列。通常效率更高。