powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Создание индекса по кускку строки.
10 сообщений из 10, страница 1 из 1
Создание индекса по кускку строки.
    #36095007
segoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используется db2 v8 for z/OS. Есть таблица:
CREATE TABLE STAT
(STA#UN INTEGER NOT NULL,
STA#ID INTEGER NOT NULL,
STAT_NO CHAR(6) FOR SBCS DATA NOT NULL)
В запросе необходимо сделать выборку STAT_NO по первым 5-и символам LEFT(STAT_NO, 5) всё работает очень медлено.. Технологически STAT_NO CHAR(6) и менять нельзя.
Вопрос: Можно ли сделать индекс по сталбцу STAT_NO по первым пяти символам или дабавить в таблицу поле STAT_NO5 CHAR(5) которое брало из поля STAT_NO первые пять символов?

Спасибо.
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095108
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segoffИспользуется db2 v8 for z/OS. Есть таблица:
CREATE TABLE STAT
(STA#UN INTEGER NOT NULL,
STA#ID INTEGER NOT NULL,
STAT_NO CHAR(6) FOR SBCS DATA NOT NULL)
В запросе необходимо сделать выборку STAT_NO по первым 5-и символам LEFT(STAT_NO, 5) всё работает очень медлено.. Технологически STAT_NO CHAR(6) и менять нельзя.
Вопрос: Можно ли сделать индекс по сталбцу STAT_NO по первым пяти символам или дабавить в таблицу поле STAT_NO5 CHAR(5) которое брало из поля STAT_NO первые пять символов?

Спасибо.

а если написать
where STAT_NO betheen '555550' and '555559'
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095111
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
where STAT_NO between '555550' and '555559'
конечно
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095241
segoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
STAT_NO символьное значение типа 000000, 011005, 713204 в запросе должно использоваться 00000, 01100, 71320.
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095249
segoff,

Цитата:http://sqlguideline.blogspot.com/Avoid scalar functions in WHERE clauses for those index columns you want to use. E.g. substring can often be replaced with LIKE or BETWEEN
Про BETWEEN уже написали, вот конструкция для LIKE:
Код: plaintext
where STAT_NO LIKE '55555_'
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095879
segoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может не совсем правельно объяснил...
Есть еще одна таблица OVER и в ней есть столбец KS CHAR(5), запрос выглядит что-то вроде этого:
SELECT
*
FROM
OVER,
STAT
where OVER.KS = LEFT(STAT.STAT_NO, 5)

Работает очень долго, если бы в таблице STAT было бы поле STAT_NO5 которое брало из поля STAT_NO первые пять символов, то запрос был бы:
SELECT
*
FROM
OVER,
STAT
where OVER.KS = STAT.STAT_NO5
и всё работает моментально.
Если возможность сделать такое такое поле которое генерировалось бы автоматически или как по-другому обойти?
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095892
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segoff,

вам два примера предоставили, что делать в такой ситуации....
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095900
segoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новый Годsegoff,

вам два примера предоставили, что делать в такой ситуации....

работает медленно..
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095959
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автоматического поля там не было...

Можно такой запрос попробовать написать

SELECT
*
FROM
OVER A,
STAT B
WHERE A.KS IN ( SELECT B.STAT_NO FROM STAT B WHERE STAT_NO BETWEEN A.KS||'0' AND A.KS||'9' )
...
Рейтинг: 0 / 0
Создание индекса по кускку строки.
    #36095979
segoff,

Пробуйте так
Код: plaintext
1.
2.
SELECT * FROM OVER,STAT
where STAT.STAT_NO between OVER.KS||'0' and OVER.KS||'9'
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Создание индекса по кускку строки.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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