Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 17.62 KB | None | 0 0
  1. --############################################################################################################
  2. --### Bestellungen aus Land x (shopping-cart: delivery_country)
  3.  
  4.     SELECT *
  5.     FROM SHOPPING_CART WHERE DELIVERY_COUNTRY = 'USA' AND DELIVERY_POSTAL_CODE = 10573
  6.     ORDER BY ORDER_TIME DESC;
  7.  
  8. PLAN_TABLE_OUTPUT
  9. -------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                            
  10. | Id  | Operation                                   | Name            | Rows  | Bytes | Cost (%CPU)| TIME     | Pstart| Pstop |                                                                                                                                                                            
  11. -------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                            
  12. |   0 | SELECT STATEMENT                            |                 |   220 | 17820 |   201   (1)| 00:00:01 |       |       |                                                                                                                                                                            
  13. |   1 |  SORT ORDER BY                              |                 |   220 | 17820 |   201   (1)| 00:00:01 |       |       |                                                                                                                                                                            
  14. |   2 |   TABLE ACCESS BY GLOBAL INDEX ROWID BATCHED| SHOPPING_CART   |   220 | 17820 |   200   (0)| 00:00:01 | ROWID | ROWID |                                                                                                                                                                            
  15. |*  3 |    INDEX RANGE SCAN                         | DELIVERYCOUNTRY |   220 |       |     1   (0)| 00:00:01 |       |       |                                                                                                                                                                            
  16. -------------------------------------------------------------------------------------------------------------------------------
  17.  
  18. Der INDEX RANGE Scan findet alle Ergebnisse zu der angegebenen Condition
  19. über den globalen INDEX (DELIVERY_COUNTRY & DELIVERY_POSTAL_CODE).
  20.  
  21.  
  22. --############################################################################################################
  23. --### Durchschnitts-Warenkorbgröße im letzten Monat
  24.  
  25.     SELECT TO_CHAR(AVG(COUNT(c.PRODUCT_ID)), '9999D0') AS AVG_ORDERSIZE
  26.     FROM SHOPPING_CART s, CART_ITEM c
  27.     WHERE s.CART_ID = c.CART_ID AND s.ORDER_TIME > sysdate-30
  28.     GROUP BY s.CART_ID;
  29.  
  30. PLAN_TABLE_OUTPUT                                                                                                                                                                                                                                                                                          
  31. -------------------------------------------------------------------------------------------------------------                                                                                                                                                                                              
  32. | Id  | Operation                   | Name          | Rows  | Bytes | Cost (%CPU)| TIME     | Pstart| Pstop |                                                                                                                                                                                              
  33. -------------------------------------------------------------------------------------------------------------                                                                                                                                                                                              
  34. |   0 | SELECT STATEMENT            |               |     1 |    21 | 24345   (1)| 00:00:01 |       |       |                                                                                                                                                                                              
  35. |   1 |  SORT AGGREGATE             |               |     1 |    21 | 24345   (1)| 00:00:01 |       |       |                                                                                                                                                                                              
  36. |   2 |   HASH GROUP BY             |               |     1 |    21 | 24345   (1)| 00:00:01 |       |       |                                                                                                                                                                                              
  37. |*  3 |    HASH JOIN                |               |  9476 |   194K| 24344   (1)| 00:00:01 |       |       |                                                                                                                                                                                              
  38. |   4 |     PARTITION RANGE ITERATOR|               |   932 | 14912 | 23690   (1)| 00:00:01 |   KEY |1048575|                                                                                                                                                                                              
  39. |*  5 |      TABLE ACCESS FULL      | SHOPPING_CART |   932 | 14912 | 23690   (1)| 00:00:01 |   KEY |1048575|                                                                                                                                                                                              
  40. |   6 |     TABLE ACCESS FULL       | CART_ITEM     |   908K|  4436K|   652   (1)| 00:00:01 |       |       |                                                                                                                                                                                              
  41. -------------------------------------------------------------------------------------------------------------
  42.  
  43. Die ShoppingCart-Tabelle wird nicht vollständig ausgelesen. Nur die relevanten Partitionen müssen aufgrund der
  44. order_time-Kondition berücksichtigt werden. Es wird ausgegangen, dass ShoppingCarts meist mit Angabe eines Zeitraumes
  45. ausgelesen werden.
  46.  
  47.  
  48. --############################################################################################################
  49. --### Verhältnis der gekauften lowfat-Produkten von PayPal-Käufen zu gesamt im letzten Monat
  50.  
  51.     SELECT TO_CHAR(lf*100/al, '9990D99')||'%' AS RATIO_LF
  52.     FROM (
  53.         SELECT COUNT(*) AS lf
  54.         FROM SHOPPING_CART s, CART_ITEM c, PRODUCT p
  55.         WHERE s.cart_id = c.cart_id AND c.product_id = p.product_id AND s.order_time > sysdate-30
  56.             AND p.low_fat = 1
  57.     ) , (
  58.         SELECT COUNT(*) AS al
  59.         FROM SHOPPING_CART s, CART_ITEM c, PRODUCT p
  60.         WHERE s.cart_id = c.cart_id AND c.product_id = p.product_id AND s.order_time > sysdate-30  
  61.     );
  62.  
  63. PLAN_TABLE_OUTPUT
  64. ------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                    
  65. | Id  | Operation                              | Name          | Rows  | Bytes | Cost (%CPU)| TIME     | Pstart| Pstop |                                                                                                                                                                                    
  66. ------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                    
  67. |   0 | SELECT STATEMENT                       |               |     1 |    26 | 58109   (1)| 00:00:03 |       |       |                                                                                                                                                                                    
  68. |   1 |  NESTED LOOPS                          |               |     1 |    26 | 58109   (1)| 00:00:03 |       |       |                                                                                                                                                                                    
  69. |   2 |   VIEW                                 |               |     1 |    13 | 33765   (1)| 00:00:02 |       |       |                                                                                                                                                                                    
  70. |   3 |    SORT AGGREGATE                      |               |     1 |    33 |            |          |       |       |                                                                                                                                                                                    
  71. |   4 |     NESTED LOOPS                       |               |  4709 |   151K| 33765   (1)| 00:00:02 |       |       |                                                                                                                                                                                    
  72. |   5 |      NESTED LOOPS                      |               |  9477 |   151K| 33765   (1)| 00:00:02 |       |       |                                                                                                                                                                                    
  73. |*  6 |       HASH JOIN                        |               |  9477 |   231K| 24344   (1)| 00:00:01 |       |       |                                                                                                                                                                                    
  74. |   7 |        PARTITION RANGE ITERATOR        |               |   932 | 14912 | 23690   (1)| 00:00:01 |   KEY |1048575|                                                                                                                                                                                    
  75. |*  8 |         TABLE ACCESS FULL              | SHOPPING_CART |   932 | 14912 | 23690   (1)| 00:00:01 |   KEY |1048575|                                                                                                                                                                                    
  76. |   9 |        TABLE ACCESS FULL               | CART_ITEM     |   908K|  7985K|   652   (1)| 00:00:01 |       |       |                                                                                                                                                                                    
  77. |* 10 |       INDEX UNIQUE SCAN                | PK_PRODUCT_ID |     1 |       |     0   (0)| 00:00:01 |       |       |                                                                                                                                                                                    
  78. |* 11 |      TABLE ACCESS BY GLOBAL INDEX ROWID| PRODUCT       |     1 |     8 |     1   (0)| 00:00:01 | ROWID | ROWID |                                                                                                                                                                                    
  79. |  12 |   VIEW                                 |               |     1 |    13 | 24344   (1)| 00:00:01 |       |       |                                                                                                                                                                                    
  80. |  13 |    SORT AGGREGATE                      |               |     1 |    21 |            |          |       |       |                                                                                                                                                                                    
  81. |* 14 |     HASH JOIN                          |               |  9477 |   194K| 24344   (1)| 00:00:01 |       |       |                                                                                                                                                                                    
  82. |  15 |      PARTITION RANGE ITERATOR          |               |   932 | 14912 | 23690   (1)| 00:00:01 |   KEY |1048575|                                                                                                                                                                                    
  83. |* 16 |       TABLE ACCESS FULL                | SHOPPING_CART |   932 | 14912 | 23690   (1)| 00:00:01 |   KEY |1048575|                                                                                                                                                                                    
  84. |  17 |      TABLE ACCESS FULL                 | CART_ITEM     |   908K|  4436K|   652   (1)| 00:00:01 |       |       |                                                                                                                                                                                    
  85. ------------------------------------------------------------------------------------------------------------------------
  86.  
  87. Die beiden "Count-Statements" sind ähnlich behandelt worden. Beide machen die Partitionen teilweise zu nutze.
  88. Genauer kann durch die order_time-Kondition die interessante PARTITION mit ShoppingCart-Daten ausgewählt werden.
  89. Um die "p.lowfat = 1"-Kondition zu berücksichtigen, verwendet das erste "Count-Statement" zusätzlich den
  90. Standard-INDEX (PRODUKT_ID).
  91.  
  92.  
  93. --############################################################################################################
  94. --### Übersicht Bestellungen mit Produktmenge
  95.  
  96.     SELECT s.ORDER_TIME, s.CART_ID, COUNT(c.PRODUCT_ID) AS PRODUCTS
  97.     FROM SHOPPING_CART s, CART_ITEM c
  98.     WHERE s.CART_ID = c.CART_ID AND s.ORDER_TIME > sysdate-30
  99.     GROUP BY s.CART_ID, s.ORDER_TIME
  100.     ORDER BY s.ORDER_TIME DESC;
  101.  
  102. PLAN_TABLE_OUTPUT                                                                                                                                                                                                                                                                                          
  103. ------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                
  104. | Id  | Operation                  | Name          | Rows  | Bytes | Cost (%CPU)| TIME     | Pstart| Pstop |                                                                                                                                                                                                
  105. ------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                
  106. |   0 | SELECT STATEMENT           |               |   992 | 20832 | 24345   (1)| 00:00:01 |       |       |                                                                                                                                                                                                
  107. |   1 |  SORT GROUP BY             |               |   992 | 20832 | 24345   (1)| 00:00:01 |       |       |                                                                                                                                                                                                
  108. |*  2 |   HASH JOIN                |               |  9476 |   194K| 24344   (1)| 00:00:01 |       |       |                                                                                                                                                                                                
  109. |   3 |    PARTITION RANGE ITERATOR|               |   932 | 14912 | 23690   (1)| 00:00:01 |1048575|   KEY |                                                                                                                                                                                                
  110. |*  4 |     TABLE ACCESS FULL      | SHOPPING_CART |   932 | 14912 | 23690   (1)| 00:00:01 |1048575|   KEY |                                                                                                                                                                                                
  111. |   5 |    TABLE ACCESS FULL       | CART_ITEM     |   908K|  4436K|   652   (1)| 00:00:01 |       |       |                                                                                                                                                                                                
  112. ------------------------------------------------------------------------------------------------------------
  113.  
  114. Die ShoppingCart-Tabelle wird nicht vollständig ausgelesen. Nur die relevanten Partitionen müssen aufgrund der
  115. order_time-Kondition berücksichtigt werden. Es wird ausgegangen, dass ShoppingCarts meist mit Angabe eines Zeitraumes
  116. ausgelesen werden.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement