2

Oracle では、SQL の IN 句でサポートされる項目は 1000 項目のみという制限があります。オラクルに他にそのような制限があるかどうか知りたいです。

4

3 に答える 3

3

11.2 のさまざまな制限がここに文書化されています: http://docs.oracle.com/cd/B28359_01/server.111/b28320/limits003.htm

エディションに基づくいくつかの制限: http://www.oracle.com/us/products/database/enterprise-edition/comparisons/index.html

于 2013-10-21T12:17:58.937 に答える
1

この制限を回避する簡単なトリックがあります。
アドホッククエリで時々使用します。
Oracle 11.2g で 5000 項目をテスト済み。
この方法の欠点は、解析時間が長いことです (私のシステムでは、5000 アイテムに対して約 5 ~ 10 秒かかります)。

WITH list AS (
select 1 as X from dual union all
select 2 from dual union all
select 3 from dual union all
......
......
......
select 4997 from dual union all
select 4998 from dual union all
select 4999 from dual union all
select 5000 from dual 
)
SELECT /*+gather_plan_statistics */ * FROM table123
WHERE x IN ( SELECT * FROM list );



select * from table( dbms_xplan.display_cursor (format=>'ALLSTATS LAST'));
----------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                       
| Id  | Operation            | Name     | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |                                                                                                                                                                                       
----------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                       
|   0 | SELECT STATEMENT     |          |      1 |        |   5000 |00:00:00.24 |      29 |       |       |          |                                                                                                                                                                                       
|*  1 |  HASH JOIN RIGHT SEMI|          |      1 |      1 |   5000 |00:00:00.24 |      29 |  1066K|  1066K| 1339K (0)|                                                                                                                                                                                       
|   2 |   VIEW               | VW_NSO_1 |      1 |   5000 |   5000 |00:00:00.24 |       0 |       |       |          |                                                                                                                                                                                       
|   3 |    VIEW              |          |      1 |   5000 |   5000 |00:00:00.21 |       0 |       |       |          |                                                                                                                                                                                       
|   4 |     UNION-ALL        |          |      1 |        |   5000 |00:00:00.18 |       0 |       |       |          |                                                                                                                                                                                       
|   5 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|   6 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|   7 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|   8 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|   9 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          | 
..........
..........
..........
|5000 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|5001 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|5002 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|5003 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|5004 |      FAST DUAL       |          |      1 |      1 |      1 |00:00:00.01 |       0 |       |       |          |                                                                                                                                                                                       
|5005 |   TABLE ACCESS FULL  | TABLE123 |      1 |   9999 |   9999 |00:00:00.02 |      29 |       |       |          |                                                                                                                                                                                       
---------------------------------------------------------------------------------------------------------------------- 
于 2013-10-21T16:11:13.663 に答える