Страница 1 из 3

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

Добавлено: 25 янв 2011, 17:55
RAJAH
Всем привет.
Написал небольшой отчётец с Excel-функциями xl*Matrix ("вариантные массивы"). На моём компьютере выполняется за минуту. На других машинах ждут часок. В чём дело? unreg.bat и reg.bat не помогли. Почему-то запрос выполняется различное время.

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

Добавлено: 25 янв 2011, 18:25
edward_K
а в конце концов выводится? А то мож просто в excel или еще где стоит на ошибке.
Да и сильно влияет принтер - как и на все редакторы от мелкософта.

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

Добавлено: 25 янв 2011, 20:54
RAJAH
Да, в конце концов, если иметь терпение, можно дождаться отчёта. Принтер - вряд ли, от него не зависит: сетевой у нас с одной машиной совпадает, с другой нет, а всё равно на этих компьютерах гораздо дольше, чем у меня.

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

Добавлено: 26 янв 2011, 12:30
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);

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

Добавлено: 26 янв 2011, 12:48
m0p3e
/== Жесткие подцепки могут давать такие тормоза в запросах, что "мама не горюй"...

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

Добавлено: 26 янв 2011, 13:16
Serges
RAJAH писал(а):Сменил тему. :smile: Оказалось, причина в запросе. Именно он по-разному ведёт себя на разных компьютерах. Интересно, почему.
А компьютеры однотипные? Помнится, у первых AMD Athlon были проблемы с Галактикой, которые никогда не наблюдалось на Intel :smile:

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

Добавлено: 26 янв 2011, 14:20
RAJAH
m0p3e писал(а):/== Жесткие подцепки могут давать такие тормоза в запросах, что "мама не горюй"...
Они "лишние" записи хорошо исключают, которым не найдено соответствие. И я бы ещё засомневался, но у меня-то не тормозит.
Serges писал(а):А компьютеры однотипные? Помнится, у первых AMD Athlon были проблемы с Галактикой, которые никогда не наблюдалось на Intel
Угу. Все Intel.

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

Добавлено: 26 янв 2011, 15:08
galover
от жесткой подцепки можно избавиться заюзав IsValid

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

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

И кстати СУБД какая?

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

Добавлено: 26 янв 2011, 16:39
RAJAH
m0p3e писал(а):А не надо сомневаться - надо проверить.
Стоп-стоп! Я ж говорю: у меня всё быстро. Если бы у всех подтормаживало, тогда можно было усомниться в /==.
m0p3e писал(а):И кстати СУБД какая?
MS SQL.

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

Добавлено: 26 янв 2011, 18:03
Polimer
Как вариант - разные настройки ODBC, у вас протокол named pipes, у других - tcp/ip.

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

Добавлено: 26 янв 2011, 18:25
Vik
А, по-моему, вот эти фильтры могут очень сильно тормозить:

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

and abs(mbpin.tpercent-100) < 0.009
and not isvalidall(tnmbpout);
Если не ошибаюсь, при такой записи фильтрация идет на машине клиента

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

Добавлено: 27 янв 2011, 11:42
RAJAH
Polimer писал(а):Как вариант - разные настройки ODBC, у вас протокол named pipes, у других - tcp/ip.
У всех TCP/IP.
Vik писал(а):при такой записи фильтрация идет на машине клиента
А какими настройками, существенными для быстродействия, моя машина от других отличается? Конфигурация железа одинаковая - брали серией у одного поставщика.

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

Добавлено: 27 янв 2011, 12:05
Vik
RAJAH писал(а):А какими настройками, существенными для быстродействия, моя машина от других отличается?
Ну этого я, сами понимаете, знать никак не могу) А вы пробовали уже хоть как-то поэкспериментировать с вьюхой?

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

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

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