Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Падает производительность из-за конструкции вида - interval '1' day / 9 сообщений из 9, страница 1 из 1
11.09.2021, 10:31
    #40096842
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
структура таблцы 

create table pr_date (
 name varchar2(100), 
 content varchar2(100),
 dt_acc date
);

/* Запрос выполняется за, в среднем, 0.134 сек */
select t.name
      ,t.content
      ,t.dt_acc
  from pr_date t


/* Запрос выполняется за, в среднем, 4 - 7 сек */
select t.name
      ,t.content
      ,t.dt_acc - interval '2' hour as dt_acc
  from pr_date t

/*
  Суть конструкции interval '2' hour в том, что нужно изменить часовой пояс.
*/



Можно ли другим способом изменить часовой пояс ?
...
Рейтинг: 0 / 0
11.09.2021, 11:03
    #40096844
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
Вопрос в пустоту - когда научимся делать test cases?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
Connected to Oracle Database 11g Release 11.2.0.1.0 
Connected as supermag@DBOFFICE

SQL> set timing on
SQL> 
SQL> create table pr_date (
  2   name varchar2(100),
  3   content varchar2(100),
  4   dt_acc date
  5  );

Table created


Executed in 0,257 seconds


SQL> insert into pr_date select 'name', 'content', sysdate + rownum/24/60 from dual connect by level < 1e6;

999999 rows inserted


Executed in 3,095 seconds


SQL> commit;

Commit complete


Executed in 0,124 seconds


SQL> 
SQL> select t.name
  2        ,t.content
  3        ,t.dt_acc
  4    from pr_date t
  5  where t.dt_acc between to_date('2021-09-12 10:00', 'YYYY-MM-DD HH24:MI') and to_date('2021-09-12 11:00', 'YYYY-MM-DD HH24:MI');

NAME                                                                             CONTENT                                                                          DT_ACC
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021

NAME                                                                             CONTENT                                                                          DT_ACC
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021

NAME                                                                             CONTENT                                                                          DT_ACC
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021
name                                                                             content                                                                          12.09.2021

60 rows selected


Executed in 1,216 seconds


SQL> 
SQL> select t.name
  2        ,t.content
  3        ,t.dt_acc - interval '2' hour
  4    from pr_date t
  5  where t.dt_acc between to_date('2021-09-12 10:00', 'YYYY-MM-DD HH24:MI') and to_date('2021-09-12 11:00', 'YYYY-MM-DD HH24:MI');

NAME                                                                             CONTENT                                                                          T.DT_ACC-INTERVAL'2'HOUR
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ------------------------
name                                                                             content                                                                          12.09.2021 8:00:20
name                                                                             content                                                                          12.09.2021 8:01:20
name                                                                             content                                                                          12.09.2021 8:02:20
name                                                                             content                                                                          12.09.2021 8:03:20
name                                                                             content                                                                          12.09.2021 8:04:20
name                                                                             content                                                                          12.09.2021 8:05:20
name                                                                             content                                                                          12.09.2021 8:06:20
name                                                                             content                                                                          12.09.2021 8:07:20
name                                                                             content                                                                          12.09.2021 8:08:20
name                                                                             content                                                                          12.09.2021 8:09:20
name                                                                             content                                                                          12.09.2021 8:10:20
name                                                                             content                                                                          12.09.2021 8:11:20
name                                                                             content                                                                          12.09.2021 8:12:20
name                                                                             content                                                                          12.09.2021 8:13:20
name                                                                             content                                                                          12.09.2021 8:14:20
name                                                                             content                                                                          12.09.2021 8:15:20
name                                                                             content                                                                          12.09.2021 8:16:20
name                                                                             content                                                                          12.09.2021 8:17:20
name                                                                             content                                                                          12.09.2021 8:18:20
name                                                                             content                                                                          12.09.2021 8:19:20

NAME                                                                             CONTENT                                                                          T.DT_ACC-INTERVAL'2'HOUR
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ------------------------
name                                                                             content                                                                          12.09.2021 8:20:20
name                                                                             content                                                                          12.09.2021 8:21:20
name                                                                             content                                                                          12.09.2021 8:22:20
name                                                                             content                                                                          12.09.2021 8:23:20
name                                                                             content                                                                          12.09.2021 8:24:20
name                                                                             content                                                                          12.09.2021 8:25:20
name                                                                             content                                                                          12.09.2021 8:26:20
name                                                                             content                                                                          12.09.2021 8:27:20
name                                                                             content                                                                          12.09.2021 8:28:20
name                                                                             content                                                                          12.09.2021 8:29:20
name                                                                             content                                                                          12.09.2021 8:30:20
name                                                                             content                                                                          12.09.2021 8:31:20
name                                                                             content                                                                          12.09.2021 8:32:20
name                                                                             content                                                                          12.09.2021 8:33:20
name                                                                             content                                                                          12.09.2021 8:34:20
name                                                                             content                                                                          12.09.2021 8:35:20
name                                                                             content                                                                          12.09.2021 8:36:20
name                                                                             content                                                                          12.09.2021 8:37:20
name                                                                             content                                                                          12.09.2021 8:38:20
name                                                                             content                                                                          12.09.2021 8:39:20
name                                                                             content                                                                          12.09.2021 8:40:20

NAME                                                                             CONTENT                                                                          T.DT_ACC-INTERVAL'2'HOUR
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ------------------------
name                                                                             content                                                                          12.09.2021 8:41:20
name                                                                             content                                                                          12.09.2021 8:42:20
name                                                                             content                                                                          12.09.2021 8:43:20
name                                                                             content                                                                          12.09.2021 8:44:20
name                                                                             content                                                                          12.09.2021 8:45:20
name                                                                             content                                                                          12.09.2021 8:46:20
name                                                                             content                                                                          12.09.2021 8:47:20
name                                                                             content                                                                          12.09.2021 8:48:20
name                                                                             content                                                                          12.09.2021 8:49:20
name                                                                             content                                                                          12.09.2021 8:50:20
name                                                                             content                                                                          12.09.2021 8:51:20
name                                                                             content                                                                          12.09.2021 8:52:20
name                                                                             content                                                                          12.09.2021 8:53:20
name                                                                             content                                                                          12.09.2021 8:54:20
name                                                                             content                                                                          12.09.2021 8:55:20
name                                                                             content                                                                          12.09.2021 8:56:20
name                                                                             content                                                                          12.09.2021 8:57:20
name                                                                             content                                                                          12.09.2021 8:58:20
name                                                                             content                                                                          12.09.2021 8:59:20

60 rows selected


Executed in 1,452 seconds



SQL> 
SQL> explain plan for select t.name
  2        ,t.content
  3        ,t.dt_acc - interval '2' hour
  4    from pr_date t
  5  where t.dt_acc between to_date('2021-09-12 10:00', 'YYYY-MM-DD HH24:MI') and to_date('2021-09-12 11:00', 'YYYY-MM-DD HH24:MI');

Explained


Executed in 0,12 seconds


SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2840493902

-----------------------------------------------------------------------------
| Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |         |    40 |  4520 |  1009   (2)| 00:00:13 |
|*  1 |  TABLE ACCESS FULL| PR_DATE |    40 |  4520 |  1009   (2)| 00:00:13 |
-----------------------------------------------------------------------------

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

   1 - filter("T"."DT_ACC">=TO_DATE(' 2021-09-12 10:00:00',
              'syyyy-mm-dd hh24:mi:ss') AND "T"."DT_ACC"<=TO_DATE(' 2021-09-12
              11:00:00', 'syyyy-mm-dd hh24:mi:ss'))

Note
-----
   - dynamic sampling used for this statement (level=2)

19 rows selected


Executed in 0,806 seconds


SQL> drop table pr_date;

Table dropped


Executed in 4,471 seconds

...
Рейтинг: 0 / 0
11.09.2021, 21:45
    #40096925
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
dmdmdm
Вопрос в пустоту - когда научимся делать test cases?


А ничего что первый select читает диск а второй select будет читать из buffer cache?


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> set autotrace on
SQL> select t.name
  2            ,t.content
  3            ,t.dt_acc
  4        from pr_date t
  5      where t.dt_acc between to_date('2021-09-12 10:00', 'YYYY-MM-DD HH24:MI') and to_date('2021-09-12 11:00', 'YYYY-MM-DD HH24:MI');

...

60 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 2840493902

-----------------------------------------------------------------------------
| Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |         |    40 |  4520 |  1000   (2)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| PR_DATE |    40 |  4520 |  1000   (2)| 00:00:01 |
-----------------------------------------------------------------------------

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

   1 - filter("T"."DT_ACC">=TO_DATE(' 2021-09-12 10:00:00',
              'syyyy-mm-dd hh24:mi:ss') AND "T"."DT_ACC"<=TO_DATE(' 2021-09-12
              11:00:00', 'syyyy-mm-dd hh24:mi:ss'))

Note
-----
   - dynamic statistics used: dynamic sampling (level=2)


Statistics
----------------------------------------------------------
         40  recursive calls
          0  db block gets
       3746  consistent gets
       3606  physical reads
          0  redo size
       2092  bytes sent via SQL*Net to client
        641  bytes received via SQL*Net from client
          5  SQL*Net roundtrips to/from client
          5  sorts (memory)
          0  sorts (disk)
         60  rows processed

SQL> /

...

60 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 2840493902

-----------------------------------------------------------------------------
| Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |         |    40 |  4520 |  1000   (2)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| PR_DATE |    40 |  4520 |  1000   (2)| 00:00:01 |
-----------------------------------------------------------------------------

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

   1 - filter("T"."DT_ACC">=TO_DATE(' 2021-09-12 10:00:00',
              'syyyy-mm-dd hh24:mi:ss') AND "T"."DT_ACC"<=TO_DATE(' 2021-09-12
              11:00:00', 'syyyy-mm-dd hh24:mi:ss'))

Note
-----
   - dynamic statistics used: dynamic sampling (level=2)


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
       3616  consistent gets
          0  physical reads
          0  redo size
       2092  bytes sent via SQL*Net to client
        641  bytes received via SQL*Net from client
          5  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         60  rows processed

SQL>




SY.
...
Рейтинг: 0 / 0
12.09.2021, 01:05
    #40096937
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
gera3323
Запрос выполняется за, в среднем, 0.134 сек
Предоставьте реальные планы со статистиками
...
Рейтинг: 0 / 0
13.09.2021, 11:34
    #40097109
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
gera3323
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
структура таблцы 

create table pr_date (
 name varchar2(100), 
 content varchar2(100),
 dt_acc date
);

/* Запрос выполняется за, в среднем, 0.134 сек */
select t.name
      ,t.content
      ,t.dt_acc
  from pr_date t


/* Запрос выполняется за, в среднем, 4 - 7 сек */
select t.name
      ,t.content
      ,t.dt_acc - interval '2' hour as dt_acc
  from pr_date t

/*
  Суть конструкции interval '2' hour в том, что нужно изменить часовой пояс.
*/




Можно ли другим способом изменить часовой пояс ?
сколько строк возвращается
и как определяете время
...
Рейтинг: 0 / 0
13.09.2021, 11:35
    #40097110
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
interval '2' hour для таймзоны выглядит странно
вдруг летнее время вернется
...
Рейтинг: 0 / 0
13.09.2021, 14:31
    #40097215
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
А ничего что

О чем и речь.

Когда видно четко, что сделано - разговор один.

Когда пересказ от себя - достаем потрепанный хрустальный шар.
...
Рейтинг: 0 / 0
13.09.2021, 15:05
    #40097236
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
andreymx
interval '2' hour для таймзоны выглядит странно
вдруг летнее время вернется
хуже другое - зачем для какой-нибудь зимней даты возвращать летнее смещение...
...
Рейтинг: 0 / 0
13.09.2021, 15:18
    #40097240
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает производительность из-за конструкции вида - interval '1' day
gera3323
Можно ли другим способом изменить часовой пояс ?

1. Собственно для смены часового пояса придумана конструкция AT TIMEZONE.
Разумеется, применять её следует к типу, содержащему ту самую timezone.
Дату в него можно скастовать.

2. Собственно даты можно корректировать посредством обычной oracle date arithmetics, аналогом конструкции
Код: plsql
1.
t.dt_acc - interval '2' hour as dt_acc 


будет
Код: plsql
1.
t.dt_acc - 2/24 as dt_acc 
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Падает производительность из-за конструкции вида - interval '1' day / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]