Страница 1 из 2
clarion + mysql + neor profile
Добавлено: 08 Июль 2020, 21:21
gopstop2007
посмотрел на код и обомлел
С10 ABC Mysql две (LoadMetod: Page) таблицы связанные (relation) в clarion-е, в mysql не указана relation
Строки из профайлера: 2999 - id основной таблицы
это запрос который формируется clarion-ном, пытается загрузить всю базу, запрос получается больше 1 мБ и 21 тысяч строк?!
Код: Выделить всё
SELECT много моих полей FROM мойФайл WHERE (my_ID <= 2999 AND (my_ID < 2999 OR (myDet_ID <= 2147483647 ))) ORDER BY my_ID DESC,myDet_ID DESC
кто знает как с этим бороться?
clarion + mysql + neor profile
Добавлено: 08 Июль 2020, 22:22
kreator
Наверно как Вы попросили. А что должно быть? Я криминала не замечал в автоматическом создании запросов Кларионом. Всё более-менее ровно. Единственное - тащит много полей. Особенно когда много в броузе много связанных таблиц. И ладно бы поля связующие тащил бы, но и рядом по два-три поля слева и справа.
Но это может быть особенность работы кларионовских вьюх, там есть какие-то "непонятки", я бы так сказал.
clarion + mysql + neor profile
Добавлено: 09 Июль 2020, 7:13
gopstop2007
смущает вот это, такого id во второй таблице больше 200 и не было
clarion + mysql + neor profile
Добавлено: 09 Июль 2020, 9:43
RaFaeL
Это максимальное значение типа long
clarion + mysql + neor profile
Добавлено: 09 Июль 2020, 9:54
kreator
gopstop2007 писал(а): ↑09 Июль 2020, 7:13
смущает вот это, такого id во второй таблице больше 200 и не было
По первому посту у Вас одна таблица. Посмотрите внимательно. Я сомневаюсь, что Кларион сам добавил это условие.
clarion + mysql + neor profile
Добавлено: 09 Июль 2020, 9:56
kreator
RaFaeL писал(а): ↑09 Июль 2020, 9:43
Это максимальное значение типа long
Это да. Я не встречался с тем, что Кларион добавляет такое. Может где-то в настройках таблицы/драйвера/...?
clarion + mysql + neor profile
Добавлено: 15 Июль 2020, 12:23
gopstop2007
kreator писал(а): ↑09 Июль 2020, 9:54
По первому посту у Вас одна таблица. Посмотрите внимательно. Я сомневаюсь, что Кларион сам добавил это условие.
ошибся в подстановке
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 11:31
gopstop2007
подниму, может кому пригодиться
перебрал все варианты в шаблоне с настройками, с профайлером, самое рациональное (по объему загрузки(кБ))
опция - Loading Method = File,
опция - Quck Scan Records = Off
gopstop2007 писал(а): ↑09 Июль 2020, 7:13
смущает вот это, такого id во второй таблице больше 200 и не было
Это появляется когда опция - Quck Scan Records = On, дополнительной строкой, то есть закачиваются все записи полностью и не зависимо от опции - Loading Method = Page
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 11:38
Игорь Столяров
gopstop2007 писал(а): ↑18 Сентябрь 2020, 11:31
Это появляется когда опция - Quck Scan Records = On
Просто информация из справки C11: The QUICKSCAN driver string is supported by the ASCII, BASIC, and DOS drivers.
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 12:02
gopstop2007
Игорь Столяров писал(а): ↑18 Сентябрь 2020, 11:38
gopstop2007 писал(а): ↑18 Сентябрь 2020, 11:31
Это появляется когда опция - Quck Scan Records = On
Просто информация из справки C11: The QUICKSCAN driver string is supported by the ASCII, BASIC, and DOS drivers.
В Loading Method = Page, тоже загружает все записи и два раза
в первый раз скачивает по указанному условию, второй раз с добавлением в ваш фильтр <= 2147483647
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 12:11
Игорь Столяров
gopstop2007 писал(а): ↑18 Сентябрь 2020, 12:02
В Loading Method = Page, тоже загружает все записи и два раза
в первый раз скачивает по указанному условию, второй раз с добавлением в ваш фильтр <= 2147483647
Прошу пардона, но в мои фильтры никто ничего не добавляет !
И я вообще-то на работе никогда !
Loading Method = Page - это постраничная загрузка записей в View. Там может загрузка быть и 10 раз ...
Возможно, причины проблем нужно искать в работе ODBC драйвера, и всё равно не понятно причём здесь QuickScan ...
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 12:22
kreator
ODBC-драйвер скорее всего не причём. Сто лет пользуюсь, никогда такого не видел. А что, любой броуз с таким фильтром оказывается?
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 13:31
gopstop2007
kreator писал(а): ↑18 Сентябрь 2020, 12:22
ODBC-драйвер скорее всего не причём. Сто лет пользуюсь, никогда такого не видел. А что, любой броуз с таким фильтром оказывается?
Удаленный сервер на хосте.
В одном окне - два броуза (отец и дети)
заметил когда записей стало больше (отец более 25 тысяч и дети 80 тысяч)
Отключал детей, не из-за них.
Есть выбор по фильтру по отцу - все записи. На нем и заметно (загрузка более 10 секунд).
Browse (станд.) из установок только BRWх.SetFilter() и несколько AddResetField
2-я строка из профайлера
Код: Выделить всё
SELECT INV_ID,INV_LINK,INV_ROOT,OPER_ID,DOC_ID,INV_DATE,CUSTOM_ID,OUT_ID,IN_ID,SUM_INV,
SUMVAL_INV,SUM_CURSE,TAX,PROFIT,SKIDKA,SKIDKA_PROC,SKIDKA_CASH,SKIDKA_SUM,COUNT_REC,NOTE,
STATUS_HAND,STATUS_OUT,PRINTED,POINT_ID,SMENA_ID,USER_ID,FDELETE,USER_ADD
FROM invoice WHERE (OPER_ID >= 812 AND (OPER_ID > 812 OR (DOC_ID <= 2147483647 )))
ORDER BY OPER_ID,DOC_ID DESC
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 13:50
kreator
Честно говоря, странный профайлер. Почему нет алиаса? Кларион не работает без алиаса. А что показывает "invoice{prop:SQL}"?
И вообще условие под where мягко говоря странное, даже без "DOC_ID <= 2147483647".
clarion + mysql + neor profile
Добавлено: 18 Сентябрь 2020, 14:04
gopstop2007
kreator писал(а): ↑18 Сентябрь 2020, 13:50
Честно говоря, странный профайлер. Почему нет алиаса? Кларион не работает без алиаса. А что показывает "invoice{prop:SQL}"?
И вообще условие под where мягко говоря странное, даже без "DOC_ID <= 2147483647".
Эти два поля используются в ключе файла invoice (operkey KEY(inv:oper_id,-inv:doc_id),DUP,NOCASE)
отбор данных по условию операции inv:oper_id = 812 и по -inv:doc_id = ничего не указывается, сортировка по убыванию