powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация sql-запроса
6 сообщений из 6, страница 1 из 1
Оптимизация sql-запроса
    #39286058
Philip_Stubborn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!
Как можно оптимизировать вот этот ужасный запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select count(*) from 
(
select   
 (select count(id) from table2 tab2
   where tab2.tabid = tab1.id
    and viewed = 1) 
   -    
    (select count(id) from table2 as tab2
   where tab2.tabid = tab1.id) as processed
 from table1 tab1 
 ) un 
 where processed =0
...
Рейтинг: 0 / 0
Оптимизация sql-запроса
    #39286061
Philip_Stubborn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее, как написать его проще и правильней?
...
Рейтинг: 0 / 0
Оптимизация sql-запроса
    #39286110
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Philip_Stubborn,

sum(count(*)) having
...
Рейтинг: 0 / 0
Оптимизация sql-запроса
    #39286114
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select decode (count(tab2.viewed),0,0,1)
from table1 tab1, table2 tab2
where tab2.tabid = tab1.id
and not exists (select tab2.viewed
from table1 tab1, table2 tab2
where tab2.tabid = tab1.id
and tab2.viewed != 1)
...
Рейтинг: 0 / 0
Оптимизация sql-запроса
    #39286150
heroin2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select count(*)
from table1 t1
where not exists(
select 1 from table2 t2 where t2.tabid=t1.id
and t2.viewed!=1
)
...
Рейтинг: 0 / 0
Оптимизация sql-запроса
    #39286322
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Philip_StubbornДоброго времени суток!
Как можно оптимизировать вот этот ужасный запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select count(*) from 
(
select   
 (select count(id) from table2 tab2
   where tab2.tabid = tab1.id
    and viewed = 1) 
   -    
    (select count(id) from table2 as tab2
   where tab2.tabid = tab1.id) as processed
 from table1 tab1 
 ) un 
 where processed =0


Если все tab1.id есть в tab2, то обращение к table1 не нужно :
Код: plsql
1.
2.
3.
4.
5.
SELECT COUNT(*) FROM (
SELECT tabid  
FROM table2
GROUP BY tabid
HAVING count(CASE WHEN viewed=1 THEN 1 ELSE NULL END)=count(*))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация sql-запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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