Задать вопрос
@NightFantom

Как навешать индекс на таблицу?

Всем привет!
Ребята, помогите навешать индексы на таблицу.
CREATE TABLE PRICE ( 	
	ID_CITY              number  NOT NULL,
	ID_SHOP          number  NOT NULL,
	ID_GOODS        number  NOT NULL,
	COUNT                number DEFAULT 0 NOT NULL,
	COSTS                number(8,2)  NOT NULL,
	DATE_UPDATE          date  NOT NULL,
	CONSTRAINT PK_PRICE PRIMARY KEY ( ID ) 
 );


Нужно чтобы выборка выполнялась по следующему правилу:
SELECT * FROM PRICE WHERE ID_CITY = :IdCITY AND ID_GOODS = :IdGOODS;


А обновление по такому:
UPDATE PRICE SET ... WHERE ID_SHOP = :IdSHOP AND ID_GOODS = :IdGOODS;


У меня ни как не получается сделать так, чтобы не было Full Table Scan. Использую БД Oracle

P.S. У меня малый опыт работы с БД. Буду рад любым советам.
  • Вопрос задан
  • 2364 просмотра
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@Shahelm
Скорей всего у вас в таблице слишком мало данных и mysql принимает решение выполнить фул скан вместо поиска по индексам.
Ответ написан
Cresh
@Cresh
ИТ Архитектор X5 Retail Group
после select пишем /*+ index(алиас таблицы имя индекса) */

SELECT /*+ index(pr I_PRICE_SUPERPUPERINDEX) */ * FROM PRICE PR WHERE ID_CITY = :IdCITY AND ID_GOODS = :IdGOODS;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 дек. 2024, в 19:01
1500 руб./за проект
28 дек. 2024, в 18:50
1200 руб./в час
28 дек. 2024, в 18:20
50000 руб./за проект