powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как ускорить выборку(piece)?
12 сообщений из 12, страница 1 из 1
Как ускорить выборку(piece)?
    #38360350
tolkonepiu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sup, sql.ru. Писал запрос на выборку следующих элементов столбца Fields:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
...
isnull(+$piece(fields,'R110_C3:',2),0) r110c3, 
isnull(+$piece(fields,'R110_C4:',2),0) r110c4, 
isnull(+$piece(fields,'R114_C3:',2),0) r114c3, 
isnull(+$piece(fields,'R114_C4:',2),0) r114c4, 
isnull(+$piece(fields,'R120_C3:',2),0) r120c3,
isnull(+$piece(fields,'R120_C4:',2),0) r120c4, 
isnull(+$piece(fields,'R144_C3:',2),0) r144c3, 
isnull(+$piece(fields,'R144_C4:',2),0) r144c4, 
isnull(+$piece(fields,'R150_C3:',2),0) r150c3, 
isnull(+$piece(fields,'R150_C4:',2),0) r150c4, 
isnull(+$piece(fields,'R252_C3:',2),0) r252c3, 
isnull(+$piece(fields,'R252_C4:',2),0) r252c4,
isnull(+$piece(fields,'R252_C5:',2),0) r252c5,
isnull(+$piece(fields,'R252_C6:',2),0) r252c6,
...


Столкнулся с проблемой быстродействия в связи с очень большим набором данных. Запрос длится минут 30, что очень много. Как оптимизировать его?
Пример содержимого одной строки столбца fields:
Код: sql
1.
R100_C3:0;R100_C4:0;R100_C5:0;R100_C6:0;R110_C3:45280;R110 ...(тут очень много текста)... R408_C3:2300;R409_C3:2341;


Запрос выдаёт правую часть каждого куска.
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38360389
imdb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tolkonepiu,

Распишите подробнее, что у вас делается. Из приведенного не совсем понятно, что и как. Ясно только, что данные хранятся... неоптимизировано. :)
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38360392
Ivan.Kokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tolkonepiu,
я выполнил в терминале:
s x="R100_C3:0;R100_C4:0;R100_C5:0;R100_C6:0;R110_C3:45280;R110 ...(тут очень много текста)... R408_C3:2300;R409_C3:2341;"
w $p(x,"R110_C3")

R100_C3:0;R100_C4:0;R100_C5:0;R100_C6:0;

w $p(x,"R110_C3:",2)
45280;R110 ...(тут очень много текста)... R408_C3:2300;R409_C3:2341;

Так и было задумано?
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38360400
Ivan.Kokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понимаю, что вместо этого
w $p(x,"R110_C3:",2)
45280;R110 ...(тут очень много текста)... R408_C3:2300;R409_C3:2341;
хотелось это:
45280

тогда можно еще раз $p взять: w $p($p(x,"R110_C3:",2),";")

А вообще imdb прав. Лучше поменять структуру :)
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38360431
Ivan.Kokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой, плюс увидел. Извините, ошибочка вышла :(
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38360523
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tolkonepiuКак оптимизировать его?
Таки вспомнить о первой нормальной форме ...
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38361085
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, это "сырые" данные, после завершения ввода там разумеется создаются отдельные записи в таблицах.
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38361127
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosэто "сырые" данные
Да хоть какие!
Уш первая-то нормальная форма не такая сложная... Тем паче, что еще и выборка по тем данным делается...
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38361346
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaD_De1mosэто "сырые" данные
Да хоть какие!
Уш первая-то нормальная форма не такая сложная... Тем паче, что еще и выборка по тем данным делается...

Ну как бы это сказать... в коде выборок по этому полю не происходит, а вот коды ячеек отличаются от формата к формату.
А как бы вы хранили такую структуру?
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38361994
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosА как бы вы хранили такую структуру?
Х/з что у тебя там за данные, ты не писал... Но фоть первую-то нормальную форму нужно поддерживать.
Тогда хоть проблем с выборками не будет...
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38362342
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

В общем суть в том, что в приложении (которое содержит эти данные) выборок по этому полю просто нет (за ненадобностью).
Это поле вообще хранится только для того, чтобы пользователю отобразить экран с табличкой из этих данных, для пары аналитических отчетов (которые для каждого документа только один раз производят разбор поля) и один раз для создания бизнес-объектов при завершении ввода документа. Документов в системе очень много, городить нормальные формы для этого поля смысла нет никакого.
То, что товарищ tolkonepiu пытается вытащить данные напрямую через sql, минуя отчеты - это вообще отдельная песня: через 3 года работы системы оказалось, что на промышленных серверах куча внешних приложений молча тянут оттуда данные (про оптимальность и использования запросами индексов никто не знает).
...
Рейтинг: 0 / 0
Как ускорить выборку(piece)?
    #38362374
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosгородить нормальные формы для этого поля смысла нет никакого
Спецам оно конечно видней...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как ускорить выборку(piece)?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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