Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / fetch first rows only / 6 сообщений из 6, страница 1 из 1
05.10.2021, 11:24
    #40102024
Ferx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fetch first rows only
Народ, посмотрите пожалйста, является ли код ниже оптимальным для выборки top 7 уникальных периодов ?
Очень долго выполняется. На ms sql c аналогичной таблицей SELECT TOP N намного быстрее выполняется.

select distinct OpenDate
from khd.mgt b

where 1=1
and OpenDate >= add_months(SYSDATE, -1) - За последний месяц
and to_char (OpenDate, ''d'') not in (7, 8)--УБРАЛ ВЫХОДНЫЕ

order by OpenDate desc
fetch first 7 rows only
...
Рейтинг: 0 / 0
05.10.2021, 13:57
    #40102089
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fetch first rows only
Ferx
Народ, посмотрите пожалйста, является ли код ниже оптимальным для выборки top 7 уникальных периодов ?
Очень долго выполняется. На ms sql c аналогичной таблицей SELECT TOP N намного быстрее выполняется.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select distinct OpenDate
from khd.mgt b

where 1=1 
and OpenDate >= add_months(SYSDATE, -1)  - За последний месяц
and to_char (OpenDate, ''d'') not in (7, 8)--УБРАЛ ВЫХОДНЫЕ

order by OpenDate desc
fetch  first 7 rows only


Для оформления кода используйте, пожалуйста, тэг SRC.

Эта команда завершится с синтаксической ошибкой.
Приведите текст именно той команды, которую вы выполняете.

Восьмой день недели это из песни The Beatles? :-)

[spoiler] The Beatles - Eight Days A Week
YouTube Video
...
Рейтинг: 0 / 0
05.10.2021, 14:10
    #40102099
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fetch first rows only
Индекс на OpenDate есть? План приведи. Ну и:

Код: plsql
1.
to_char (OpenDate, ''d'') not in (7, 8)



это в какой галактике?

Но даже если исправить 8 на 6 для клиента в Америке уберутся Пятницы и Субботы а для клиента в Омане Четверги и Пятницы. Используй NLS независимый подход.

SY.
...
Рейтинг: 0 / 0
05.10.2021, 14:24
    #40102103
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fetch first rows only
SY

это в какой галактике?


октябрский переворот

....
stax
...
Рейтинг: 0 / 0
05.10.2021, 15:14
    #40102112
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fetch first rows only
Ferx,

сравните с

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select distinct OpenDate from (
  select 
     OpenDate
    ,DENSE_RANK() OVER ( ORDER BY OpenDate DESC) r
  from khd.mgt b
  where 1=1
    and OpenDate >= add_months(SYSDATE, -1) - За последний месяц
    and to_char (OpenDate, ''d'') not in (7, 8)--УБРАЛ ВЫХОДНЫЕ
  )
where r<7
order by 1



.....
stax
...
Рейтинг: 0 / 0
05.10.2021, 20:39
    #40102186
Ferx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fetch first rows only
Stax, ваш вариант намного быстрее выполняется. Спасибо большое!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / fetch first rows only / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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