Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка из нескольких партиций 
:(
    Опции темы
Gorlum
Дата 7.9.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.9.2004

Репутация: нет
Всего: нет



Второй день ломаю голову на тему как сделать селект из нескольких партиций. В мане написано, что для того, чтобы выбрать данные из нескольких партиций нада накладывать условия на индекс, по которому они разделяются.... но!
Например если я пишу:
Код

select count(*) from table01 partition (P01)


то подсчетзанимает 4 сек, если я напишу:
Код

select count (*) from table01 where idx > 2 (в таблице значения idx принимают значения только 1,2,3)


то выборка занимает 20 сек.

Задача стоит, подсчитать записи для каждого индекса, то есть
Код

select idx, count(*) from table01 where idx => 1 group by idx order by idx


Выполняется минуту (долго, нудно)
Внимание вопрос: как синтаксически оформить такой запрос при помощи указания партиций?
Пример:
Код

select idx, count(*) from table01 partition(P01, P02, P03) group by idx order by idx
 ........ или что-то в этом роде

ps oracle 9
PM MAIL ICQ   Вверх
DimW
Дата 10.9.2007, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



я так понимаю партиции зазбиты по этому "idx" признаку?!
а так сколько выполняется:
Код

select count (*) from table01 where idx = 1



Цитата(Gorlum @  7.9.2007,  17:22 Найти цитируемый пост)
как синтаксически оформить такой запрос при помощи указания партиций?

в партициях не селен, но могу предположить что так:

Код

select idx, count(idx)
from 
(
select idx from table01 partition (P01)
union
select idx from table01 partition (P02)
union
select  idx from table01 partition (P03)
)
group by idx
order by idx


Это сообщение отредактировал(а) DimW - 10.9.2007, 07:22
PM MAIL ICQ   Вверх
Filatov NA
Дата 12.10.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.10.2007
Где: г. Нижнекамск

Репутация: нет
Всего: нет



Цитата(Gorlum @  7.9.2007,  15:22 Найти цитируемый пост)
Внимание вопрос: как синтаксически оформить такой запрос при помощи указания партиций?


Вероятнее всего вы что-то напутали при создании самой партиции, а точнее с условиями ее создания.
Укажите, пожалуйста, код и цель создания партиции.

Это сообщение отредактировал(а) Filatov NA - 12.10.2007, 19:33
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.