Запрос работает по-разному на разных машинах

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Запрос работает по-разному на разных машинах

Сообщение RAJAH »

Всем привет.
Написал небольшой отчётец с Excel-функциями xl*Matrix ("вариантные массивы"). На моём компьютере выполняется за минуту. На других машинах ждут часок. В чём дело? unreg.bat и reg.bat не помогли. Почему-то запрос выполняется различное время.
Последний раз редактировалось RAJAH 26 янв 2011, 12:26, всего редактировалось 1 раз.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: xl*Matrix работают по-разному на разных машинах

Сообщение edward_K »

а в конце концов выводится? А то мож просто в excel или еще где стоит на ошибке.
Да и сильно влияет принтер - как и на все редакторы от мелкософта.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: xl*Matrix работают по-разному на разных машинах

Сообщение RAJAH »

Да, в конце концов, если иметь терпение, можно дождаться отчёта. Принтер - вряд ли, от него не зависит: сетевой у нас с одной машиной совпадает, с другой нет, а всё равно на этих компьютерах гораздо дольше, чем у меня.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Запрос работает по-разному на разных машинах

Сообщение RAJAH »

Сменил тему. :smile: Оказалось, причина в запросе. Именно он по-разному ведёт себя на разных компьютерах. Интересно, почему. Вот код:

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

select katmbp.name, katpodr.name, katmol.name, persons.fio, sklad.name, mbpin.din, mbpin.dateend
from katmbp, mbpin, katmol, katpodr, perscard, lschet, persons, mbpout, katpodr sklad
where
((
mbpin.cpers      /== perscard.nrec and
perscard.clschet /== lschet.nrec and
lschet.tperson   /== persons.nrec and
mbpin.cmbp       /== katmbp.nrec and
mbpin.cpodr       == katpodr.nrec and
mbpin.cpodrf      == sklad.nrec and
mbpin.cmol        == katmol.nrec and
mbpin.nrec        == mbpout.cmbpin and (4 = mbpout.status or 2 = mbpout.status)
))
and abs(mbpin.tpercent-100) < 0.009
and not isvalidall(tnmbpout);
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Запрос работает по-разному на разных машинах

Сообщение m0p3e »

/== Жесткие подцепки могут давать такие тормоза в запросах, что "мама не горюй"...
Serges
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49

Re: Запрос работает по-разному на разных машинах

Сообщение Serges »

RAJAH писал(а):Сменил тему. :smile: Оказалось, причина в запросе. Именно он по-разному ведёт себя на разных компьютерах. Интересно, почему.
А компьютеры однотипные? Помнится, у первых AMD Athlon были проблемы с Галактикой, которые никогда не наблюдалось на Intel :smile:
Галактика 8.10, Oracle 10g / 10.2.0.4
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Запрос работает по-разному на разных машинах

Сообщение RAJAH »

m0p3e писал(а):/== Жесткие подцепки могут давать такие тормоза в запросах, что "мама не горюй"...
Они "лишние" записи хорошо исключают, которым не найдено соответствие. И я бы ещё засомневался, но у меня-то не тормозит.
Serges писал(а):А компьютеры однотипные? Помнится, у первых AMD Athlon были проблемы с Галактикой, которые никогда не наблюдалось на Intel
Угу. Все Intel.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Re: Запрос работает по-разному на разных машинах

Сообщение galover »

от жесткой подцепки можно избавиться заюзав IsValid
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Запрос работает по-разному на разных машинах

Сообщение m0p3e »

RAJAH писал(а):
m0p3e писал(а):/== Жесткие подцепки могут давать такие тормоза в запросах, что "мама не горюй"...
Они "лишние" записи хорошо исключают, которым не найдено соответствие. И я бы ещё засомневался, но у меня-то не тормозит.
А не надо сомневаться - надо проверить. Как-то надо было разобраться со стандартным фейсом, который запускался по минуте. Убрав всего одну жесткую подцепку удалось добиться запуска в 1-2 секунды.

И кстати СУБД какая?
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Запрос работает по-разному на разных машинах

Сообщение RAJAH »

m0p3e писал(а):А не надо сомневаться - надо проверить.
Стоп-стоп! Я ж говорю: у меня всё быстро. Если бы у всех подтормаживало, тогда можно было усомниться в /==.
m0p3e писал(а):И кстати СУБД какая?
MS SQL.
Polimer
Местный житель
Сообщения: 489
Зарегистрирован: 27 янв 2006, 12:46
Откуда: Москва

Re: Запрос работает по-разному на разных машинах

Сообщение Polimer »

Как вариант - разные настройки ODBC, у вас протокол named pipes, у других - tcp/ip.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Запрос работает по-разному на разных машинах

Сообщение Vik »

А, по-моему, вот эти фильтры могут очень сильно тормозить:

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

and abs(mbpin.tpercent-100) < 0.009
and not isvalidall(tnmbpout);
Если не ошибаюсь, при такой записи фильтрация идет на машине клиента
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Запрос работает по-разному на разных машинах

Сообщение RAJAH »

Polimer писал(а):Как вариант - разные настройки ODBC, у вас протокол named pipes, у других - tcp/ip.
У всех TCP/IP.
Vik писал(а):при такой записи фильтрация идет на машине клиента
А какими настройками, существенными для быстродействия, моя машина от других отличается? Конфигурация железа одинаковая - брали серией у одного поставщика.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Запрос работает по-разному на разных машинах

Сообщение Vik »

RAJAH писал(а):А какими настройками, существенными для быстродействия, моя машина от других отличается?
Ну этого я, сами понимаете, знать никак не могу) А вы пробовали уже хоть как-то поэкспериментировать с вьюхой?
Serges
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49

Re: Запрос работает по-разному на разных машинах

Сообщение Serges »

RAJAH писал(а):
Polimer писал(а):Как вариант - разные настройки ODBC, у вас протокол named pipes, у других - tcp/ip.
У всех TCP/IP.
К слову - на named pipes Галактика, как правило, работает быстрее.

По поводу тормозов - а не подключены ли проблемные станции к сети по 10-ке? Вряд ли, конечно, в наше время такое уже возможно, но вдруг - хабик какой-нибудь временный поставили и забыли. А на этом отчете явственнее всего проявляется :smile:
Галактика 8.10, Oracle 10g / 10.2.0.4
Ответить