clarion + mysql + neor profile

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

clarion + mysql + neor profile

Сообщение 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
кто знает как с этим бороться? :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

clarion + mysql + neor profile

Сообщение kreator »

Наверно как Вы попросили. А что должно быть? Я криминала не замечал в автоматическом создании запросов Кларионом. Всё более-менее ровно. Единственное - тащит много полей. Особенно когда много в броузе много связанных таблиц. И ладно бы поля связующие тащил бы, но и рядом по два-три поля слева и справа. :D Но это может быть особенность работы кларионовских вьюх, там есть какие-то "непонятки", я бы так сказал.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

clarion + mysql + neor profile

Сообщение gopstop2007 »

смущает вот это, такого id во второй таблице больше 200 и не было

Код: Выделить всё

myDet_ID <= 2147483647
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

clarion + mysql + neor profile

Сообщение RaFaeL »

Это максимальное значение типа long
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

clarion + mysql + neor profile

Сообщение kreator »

gopstop2007 писал(а): 09 Июль 2020, 7:13 смущает вот это, такого id во второй таблице больше 200 и не было

Код: Выделить всё

myDet_ID <= 2147483647
По первому посту у Вас одна таблица. Посмотрите внимательно. Я сомневаюсь, что Кларион сам добавил это условие.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

clarion + mysql + neor profile

Сообщение kreator »

RaFaeL писал(а): 09 Июль 2020, 9:43 Это максимальное значение типа long
Это да. Я не встречался с тем, что Кларион добавляет такое. Может где-то в настройках таблицы/драйвера/...?
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

clarion + mysql + neor profile

Сообщение gopstop2007 »

kreator писал(а): 09 Июль 2020, 9:54 По первому посту у Вас одна таблица. Посмотрите внимательно. Я сомневаюсь, что Кларион сам добавил это условие.
ошибся в подстановке :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

clarion + mysql + neor profile

Сообщение gopstop2007 »

подниму, может кому пригодиться

перебрал все варианты в шаблоне с настройками, с профайлером, самое рациональное (по объему загрузки(кБ))
опция - Loading Method = File,
опция - Quck Scan Records = Off
gopstop2007 писал(а): 09 Июль 2020, 7:13 смущает вот это, такого id во второй таблице больше 200 и не было

Код: Выделить всё

myDet_ID <= 2147483647
Это появляется когда опция - Quck Scan Records = On, дополнительной строкой, то есть закачиваются все записи полностью и не зависимо от опции - Loading Method = Page
Последний раз редактировалось gopstop2007 18 Сентябрь 2020, 12:00, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

clarion + mysql + neor profile

Сообщение Игорь Столяров »

gopstop2007 писал(а): 18 Сентябрь 2020, 11:31 Это появляется когда опция - Quck Scan Records = On
Просто информация из справки C11: The QUICKSCAN driver string is supported by the ASCII, BASIC, and DOS drivers.
За теми кто отстал - не возвращаться. (С) Кодекс
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

clarion + mysql + neor profile

Сообщение 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
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

clarion + mysql + neor profile

Сообщение Игорь Столяров »

gopstop2007 писал(а): 18 Сентябрь 2020, 12:02 В Loading Method = Page, тоже загружает все записи и два раза
в первый раз скачивает по указанному условию, второй раз с добавлением в ваш фильтр <= 2147483647
Прошу пардона, но в мои фильтры никто ничего не добавляет ! :) И я вообще-то на работе никогда ! :)
Loading Method = Page - это постраничная загрузка записей в View. Там может загрузка быть и 10 раз ...
Возможно, причины проблем нужно искать в работе ODBC драйвера, и всё равно не понятно причём здесь QuickScan ...
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

clarion + mysql + neor profile

Сообщение kreator »

ODBC-драйвер скорее всего не причём. Сто лет пользуюсь, никогда такого не видел. А что, любой броуз с таким фильтром оказывается?
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

clarion + mysql + neor profile

Сообщение 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 
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

clarion + mysql + neor profile

Сообщение kreator »

Честно говоря, странный профайлер. Почему нет алиаса? Кларион не работает без алиаса. А что показывает "invoice{prop:SQL}"?
И вообще условие под where мягко говоря странное, даже без "DOC_ID <= 2147483647".
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

clarion + mysql + neor profile

Сообщение 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 = ничего не указывается, сортировка по убыванию
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить