powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по выполнению SQL запроса DW
24 сообщений из 24, страница 1 из 1
Вопрос по выполнению SQL запроса DW
    #32265185
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый!

Выполнение запроса в ISQL (ASA7) проходит за 1,5 сек и тот же запрос при выполнении Preview DataWindow в PB проходит за ~50 сек. Подскажите, почему такое может быть. На DW никаких фильтров ни сортировок не стоит, все делается в SQL запросе.

Спасибо.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265197
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За сколько выполняется запрос в DW при работе в приложении?

PS. В режиме preview в IDE PowerBuilder'a заполнение данных всегда идет медленнее.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265198
Cristo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текст SQL запроса можно посмотреть?.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265212
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>За сколько выполняется запрос в DW при работе в приложении?
Примерно так-же

SQL запрос:
SELECT b_firms_type.nam,
b_firms_type.ord,
b_firms.nam,
b_firms.tel,
d_town.nam,
d_street.nam,
b_firms.f_adr_d,
b_firms.u_adr_k,
b_firms_type.id,
d_town.id,
b_firms.id,
b_dist.a_d_info_grp,
( SELECT "d_info_grp"."nam" FROM "DBA"."d_info_grp" WHERE "id" = "b_dist"."a_d_info_grp" ),
( SELECT "d_people"."fam" + ' ' + "d_people"."im" FROM "DBA"."d_people" WHERE "id" = "b_dist"."a_d_info_eng" ),
( SELECT "d_dist_sopr"."nam" FROM "DBA"."d_dist_sopr" WHERE "id" = "b_dist"."a_d_dist_sopr" ),
d_obl.nam,
b_firms.balance,
b_firms.soprflag,
( get_filial ("b_firms"."regfirms" ) ),
b_firms.rem,
b_firms.ob_flag,
b_firms.d_kategoria_name,
(SELECT MAX(obuch_dt) FROM d_people, r_firms_people WHERE (d_people.id = r_firms_people.a_d_people) AND (r_firms_people.a_b_firms = b_firms.id))
FROM b_firms,
b_firms_type,
d_obl,
d_street,
d_town,
b_dist,
d_dist_type
WHERE ( d_town.id = d_street.a_d_town ) and
( d_town.a_d_obl = d_obl.id ) and
( b_firms.ftp = b_firms_type.id ) and
( b_firms.id = b_dist.a_b_firms ) and
( d_street.id = b_firms.f_adr ) and
( b_dist.a_d_dist_type = d_dist_type.id ) and
( ( b_firms.f <> 0 ) AND
("b_dist"."a_d_info_grp" = :a_d_info_grp OR
:a_d_info_grp = 0) AND
("b_dist"."a_d_info_eng" = :a_d_info_eng OR
:a_d_info_eng = 0) AND
("b_dist"."a_d_dist_sopr" = :a_d_dist_sopr OR
:a_d_dist_sopr = 0) AND
("b_firms"."filial" = :filial OR
:filial = 0) AND
("b_firms"."soprflag" = :spr OR
:spr = 0) AND
("b_firms"."regfirms" = :regfirms OR
:regfirms = 0 or (:regfirms = -1 and b_firms.regfirms in (3,1407,1188))) AND
("b_firms"."ob_flag" = :ob_flag OR
:ob_flag = 2) AND
b_dist.f <> 0 AND
d_dist_type.d_napravlen = :napravlen )
GROUP BY b_firms_type.nam,
b_firms.d_kategoria_name,
b_firms_type.ord,
b_firms.nam,
b_firms.ob_flag,
b_firms.tel,
d_town.nam,
d_street.nam,
b_firms.f_adr_d,
b_firms.u_adr_k,
b_firms_type.id,
d_town.id,
b_firms.id,
b_dist.a_d_info_grp,
b_dist.a_d_info_eng,
b_dist.a_d_dist_sopr,
d_obl.nam,
b_firms.filial,
b_firms.balance,
b_firms.soprflag,
b_firms.regfirms,
b_firms.rem
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265310
KOLCHOZ_POSTEVENT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая версия Powerbuilder ?
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265360
KOLCHOZ_POSTEVENT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет ответа,и у меня нет времени его ждать.
Приходилось налетать на нечто подобное в шестёрке.
Там в Database Profile кто-то выставил птицу-'оптимизация запроса',что-то в этом роде,ну,в-общем у этой птицы свои понятия об оптимизации,когда её убрали-начало дышать.
Только это было года 3 назад.
Можа чего и напутал в названии,но чётко помню,что копался в Database Profile / EDIT.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265520
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOLCHOZ_POSTEVENT, может про DisableBind думаете?

А скорее всего проблема не в SQL запросе, а в том что в dataobjectе нарисовано - computed fields, ссылки на global funcions, и т.д. и т.п.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265527
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю бросить синтаксис DW для Филиппа... Может так оно и есть. Саня Павлов - уважте народ.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265565
Cristo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Синтаксис в студию
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265818
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую ответить.
Computed fields есть, 1 штука - if (Len (b_firms_rem ) <> 0, '1', '')
Никаких функций ничего подобного больше не вызывается. На каждый Column есть Expressions - if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255))) (изменяю цвет по условию)
Насчет синтаксиса - подскажите, как его взять мне и я выдам его в студию.
И на третье - ситуация разрешилась созданием индекса в таблице b_dist по полю a_b_firms. Но вопрос все равно остается в силе: почему была такая разница в скорости между ISQL и PB
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265866
Фотография alienzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О да Запрос интересный
1. Мне кажеться оператор OR лучше не использовать вообще в условиях Where
2. Там функция у тебя, что за функция get_filial ("b_firms"."regfirms" )
3. Попробуй выполнить его с Планом запроса
4. И по частям (особенно (SELECT MAX(obuch_dt) FROM d_people, r_firms_people WHERE (d_people.id = r_firms_people.a_d_people)
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265938
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to alienzzzz
1. Каким образом тогда осуществить фильтрацию Табл2 вида: все записи или по какой то записи Табл1 (связь между Табл1 и Табл2 один-ко-многим)
2. get_filial возвращает поле nam из таблицы b_firms
3. План естественно получается огромным. А какой выход? Использовать процедуры на сервере?
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32265979
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет синтаксиса - подскажите, как его взять мне и я выдам его в студию.
Пишешь функцию или эвент в DW, вот синтаксис:

string ls_ret
ls_ret = ::Clipboard ( Describe("DataWindow.Syntax") )

и его вызываешь... В клипборде - синтаксис, копируешь в форум :))

Сколько записей возвращает твой запрос? А если убрать группировки?
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32266044
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
release 6;
datawindow(units=0 timer_interval=0 color=16777215 processing=1 print.documentname="" print.orientation=0 print.margin.left=110 print.margin.right=110 print.margin.top=96 print.margin.bottom=96 print.paper.size=0 print.paper.source=0 grid.lines=0 grid.columnmove=no selected.mouse=no)
header(height=76 color="536870912" )
summary(height=0 color="536870912" )
footer(height=376 color="536870912" )
detail(height=60 color="536870912" )
table(column=(type=char(48) updatewhereclause=yes name=b_firms_type_nam dbname="b_firms_type.nam" )
column=(type=long updatewhereclause=yes name=b_firms_type_ord dbname="b_firms_type.ord" )
column=(type=char(96) updatewhereclause=yes name=b_firms_nam dbname="b_firms.nam" )
column=(type=char(16) updatewhereclause=yes name=b_firms_tel dbname="b_firms.tel" )
column=(type=char(64) updatewhereclause=yes name=d_town_nam dbname="d_town.nam" )
column=(type=char(96) updatewhereclause=yes name=d_street_nam dbname="d_street.nam" )
column=(type=char(16) updatewhereclause=yes name=b_firms_f_adr_d dbname="b_firms.f_adr_d" )
column=(type=char(8) updatewhereclause=yes name=b_firms_u_adr_k dbname="b_firms.u_adr_k" )
column=(type=long updatewhereclause=yes name=b_firms_type_id dbname="b_firms_type.id" )
column=(type=long updatewhereclause=yes name=d_town_id dbname="d_town.id" )
column=(type=long updatewhereclause=yes name=id dbname="b_firms.id" )
column=(type=long updatewhereclause=yes name=b_dist_a_d_info_grp dbname="b_dist.a_d_info_grp" )
column=(type=char(32) updatewhereclause=yes name=cnam_p dbname="nam" )
column=(type=char(81) updatewhereclause=yes name=cnam_eng dbname="compute_0014" )
column=(type=char(32) updatewhereclause=yes name=cnam_sopr dbname="nam" )
column=(type=char(64) updatewhereclause=yes name=d_obl_nam dbname="d_obl.nam" )
column=(type=decimal(2) updatewhereclause=yes name=b_firms_balance dbname="b_firms.balance" )
column=(type=long updatewhereclause=yes name=b_firms_soprflag dbname="b_firms.soprflag" )
column=(type=char(256) updatewhereclause=yes name=supp_nam dbname="compute_0019" )
column=(type=char(128) updatewhereclause=yes name=b_firms_rem dbname="b_firms.rem" )
column=(type=long updatewhereclause=yes name=ob_flag dbname="b_firms.ob_flag"
values="Îáó÷åí 1/- 0" )
column=(type=char(5) updatewhereclause=yes name=b_firms_d_kategoria_name dbname="b_firms.d_kategoria_name" )
column=(type=date updatewhereclause=yes name=compute_0023 dbname="compute_0023" )
retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"b_firms~" ) TABLE(NAME=~"b_firms_type~" ) TABLE(NAME=~"d_obl~" ) TABLE(NAME=~"d_street~" ) TABLE(NAME=~"d_town~" ) TABLE(NAME=~"b_dist~" ) TABLE(NAME=~"d_dist_type~" ) COLUMN(NAME=~"b_firms_type.nam~") COLUMN(NAME=~"b_firms_type.ord~") COLUMN(NAME=~"b_firms.nam~") COLUMN(NAME=~"b_firms.tel~") COLUMN(NAME=~"d_town.nam~") COLUMN(NAME=~"d_street.nam~") COLUMN(NAME=~"b_firms.f_adr_d~") COLUMN(NAME=~"b_firms.u_adr_k~") COLUMN(NAME=~"b_firms_type.id~") COLUMN(NAME=~"d_town.id~") COLUMN(NAME=~"b_firms.id~") COLUMN(NAME=~"b_dist.a_d_info_grp~") COMPUTE(NAME=~"( SELECT ~~~"d_info_grp~~~".~~~"nam~~~" FROM ~~~"DBA~~~".~~~"d_info_grp~~~" WHERE ~~~"id~~~" = ~~~"b_dist~~~".~~~"a_d_info_grp~~~" )~") COMPUTE(NAME=~"( SELECT ~~~"d_people~~~".~~~"fam~~~" + ' ' + ~~~"d_people~~~".~~~"im~~~" FROM ~~~"DBA~~~".~~~"d_people~~~" WHERE ~~~"id~~~" = ~~~"b_dist~~~".~~~"a_d_info_eng~~~" )~") COMPUTE(NAME=~"( SELECT ~~~"d_dist_sopr~~~".~~~"nam~~~" FROM ~~~"DBA~~~".~~~"d_dist_sopr~~~" WHERE ~~~"id~~~" = ~~~"b_dist~~~".~~~"a_d_dist_sopr~~~" )~") COLUMN(NAME=~"d_obl.nam~") COLUMN(NAME=~"b_firms.balance~") COLUMN(NAME=~"b_firms.soprflag~") COMPUTE(NAME=~"( get_filial (~~~"b_firms~~~".~~~"regfirms~~~" ) )~") COLUMN(NAME=~"b_firms.rem~") COLUMN(NAME=~"b_firms.ob_flag~") COLUMN(NAME=~"b_firms.d_kategoria_name~") COMPUTE(NAME=~"(SELECT MAX(obuch_dt) FROM d_people, r_firms_people WHERE (d_people.id = r_firms_people.a_d_people) AND (r_firms_people.a_b_firms = b_firms.id))~") JOIN (LEFT=~"d_town.id~" OP =~"=~"RIGHT=~"d_street.a_d_town~" ) JOIN (LEFT=~"d_town.a_d_obl~" OP =~"=~"RIGHT=~"d_obl.id~" ) JOIN (LEFT=~"b_firms.ftp~" OP =~"=~"RIGHT=~"b_firms_type.id~" ) JOIN (LEFT=~"b_firms.id~" OP =~"=~"RIGHT=~"b_dist.a_b_firms~" ) JOIN (LEFT=~"d_street.id~" OP =~"=~"RIGHT=~"b_firms.f_adr~" ) JOIN (LEFT=~"b_dist.a_d_dist_type~" OP =~"=~"RIGHT=~"d_dist_type.id~" )WHERE( EXP1 =~"b_firms.f~" OP =~"<>~" EXP2 =~"0~" LOGIC =~"and~" ) WHERE( EXP1 =~"(~~~"b_dist~~~".~~~"a_d_info_grp~~~"~" OP =~"=~" EXP2 =~":a_d_info_grp~" LOGIC =~"or~" ) WHERE( EXP1 =~":a_d_info_grp~" OP =~"=~" EXP2 =~"0)~" LOGIC =~"and~" ) WHERE( EXP1 =~"(~~~"b_dist~~~".~~~"a_d_info_eng~~~"~" OP =~"=~" EXP2 =~":a_d_info_eng~" LOGIC =~"or~" ) WHERE( EXP1 =~":a_d_info_eng~" OP =~"=~" EXP2 =~"0)~" LOGIC =~"and~" ) WHERE( EXP1 =~"(~~~"b_dist~~~".~~~"a_d_dist_sopr~~~"~" OP =~"=~" EXP2 =~":a_d_dist_sopr~" LOGIC =~"or~" ) WHERE( EXP1 =~":a_d_dist_sopr~" OP =~"=~" EXP2 =~"0)~" LOGIC =~"and~" ) WHERE( EXP1 =~"(~~~"b_firms~~~".~~~"filial~~~"~" OP =~"=~" EXP2 =~":filial~" LOGIC =~"or~" ) WHERE( EXP1 =~":filial~" OP =~"=~" EXP2 =~"0)~" LOGIC =~"and~" ) WHERE( EXP1 =~"(~~~"b_firms~~~".~~~"soprflag~~~"~" OP =~"=~" EXP2 =~":spr~" LOGIC =~"or~" ) WHERE( EXP1 =~":spr~" OP =~"=~" EXP2 =~"0)~" LOGIC =~"and~" ) WHERE( EXP1 =~"(~~~"b_firms~~~".~~~"regfirms~~~"~" OP =~"=~" EXP2 =~":regfirms~" LOGIC =~"or~" ) WHERE( EXP1 =~":regfirms~" OP =~"=~" EXP2 =~"0 or (:regfirms = -1 and b_firms.regfirms in (3,1407,1188)))~" LOGIC =~"and~" ) WHERE( EXP1 =~"(~~~"b_firms~~~".~~~"ob_flag~~~"~" OP =~"=~" EXP2 =~":ob_flag~" LOGIC =~"or~" ) WHERE( EXP1 =~":ob_flag~" OP =~"=~" EXP2 =~"2)~" LOGIC =~"and~" ) WHERE( EXP1 =~"b_dist.f~" OP =~"<>~" EXP2 =~"0~" LOGIC =~"and~" ) WHERE( EXP1 =~"d_dist_type.d_napravlen~" OP =~"=~" EXP2 =~":napravlen~" ) GROUP(NAME=~"b_firms_type.nam~") GROUP(NAME=~"b_firms.d_kategoria_name~") GROUP(NAME=~"b_firms_type.ord~") GROUP(NAME=~"b_firms.nam~") GROUP(NAME=~"b_firms.ob_flag~") GROUP(NAME=~"b_firms.tel~") GROUP(NAME=~"d_town.nam~") GROUP(NAME=~"d_street.nam~") GROUP(NAME=~"b_firms.f_adr_d~") GROUP(NAME=~"b_firms.u_adr_k~") GROUP(NAME=~"b_firms_type.id~") GROUP(NAME=~"d_town.id~") GROUP(NAME=~"b_firms.id~") GROUP(NAME=~"b_dist.a_d_info_grp~") GROUP(NAME=~"b_dist.a_d_info_eng~") GROUP(NAME=~"b_dist.a_d_dist_sopr~") GROUP(NAME=~"d_obl.nam~") GROUP(NAME=~"b_firms.filial~") GROUP(NAME=~"b_firms.balance~") GROUP(NAME=~"b_firms.soprflag~") GROUP(NAME=~"b_firms.regfirms~") GROUP(NAME=~"b_firms.rem~")) ARG(NAME = ~"a_d_info_grp~" TYPE = number) ARG(NAME = ~"a_d_info_eng~" TYPE = number) ARG(NAME = ~"a_d_dist_sopr~" TYPE = number) ARG(NAME = ~"filial~" TYPE = number) ARG(NAME = ~"spr~" TYPE = number) ARG(NAME = ~"regfirms~" TYPE = number) ARG(NAME = ~"ob_flag~" TYPE = number) ARG(NAME = ~"napravlen~" TYPE = number) "
arguments=(("a_d_info_grp", number), ("a_d_info_eng", number), ("a_d_dist_sopr", number), ("filial", number), ("spr", number), ("regfirms", number), ("ob_flag", number), ("napravlen", number))
sort="b_firms_type_ord A, b_firms_nam A"
)
button(name=cb_01 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="265" y="0" height="80" width="160" color="33554432" text="¹" defaultpicture=no suppresseventprocessing=no )
button(name=cb_02 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="439" y="0" height="80" width="919" color="33554432" text="Ðàçäåë" defaultpicture=no suppresseventprocessing=no )
button(name=cb_03 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="1367" y="0" height="80" width="1509" color="33554432" text="Íàèìåíîâàíèå" defaultpicture=no suppresseventprocessing=no )
button(name=cb_15 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="2885" y="0" height="80" width="283" color="0" text="Áàëàíñ" defaultpicture=no suppresseventprocessing=no )
button(name=cb_04 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="3177" y="0" height="80" width="302" color="0" text="Òåëåôîí" defaultpicture=no suppresseventprocessing=no )
button(name=cb_05 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="3488" y="0" height="80" width="635" color="0" text="Ðàéîí/Îáëàñòü" defaultpicture=no suppresseventprocessing=no )
button(name=cb_06 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="4133" y="0" height="80" width="302" color="0" text="Ãîðîä" defaultpicture=no suppresseventprocessing=no )
button(name=cb_07 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="4443" y="0" height="80" width="727" color="0" text="Óëèöà" defaultpicture=no suppresseventprocessing=no )
button(name=cb_08 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="5179" y="0" height="80" width="192" color="0" text="Äîì" defaultpicture=no suppresseventprocessing=no )
button(name=cb_09 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="5381" y="0" height="80" width="151" color="0" text="Êàá" defaultpicture=no suppresseventprocessing=no )
button(name=cb_10 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="5541" y="0" height="80" width="434" color="0" text="Ãðóïïà" defaultpicture=no suppresseventprocessing=no )
button(name=cb_11 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="5979" y="0" height="80" width="498" color="0" text="Èíæåíåð" defaultpicture=no suppresseventprocessing=no )
button(name=cb_12 band=header font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="78235810" filename="" action="0" vtextalign="0" htextalign="0" x="6487" y="0" height="80" width="722" color="0" text="Ñïîñîá ñîïðîâîæäåíèÿ" defaultpicture=no suppresseventprocessing=no )
button(name=cb_14 band=header font.charset="204" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="12632256" filename="" action="0" vtextalign="0" htextalign="0" x="5" y="0" height="80" width="137" color="0" text="_" defaultpicture=no suppresseventprocessing=no )
button(name=cb_26 band=header font.charset="204" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="13160660" filename="" action="0" vtextalign="0" htextalign="0" x="155" y="0" height="80" width="105" color="0" text="Êàò" defaultpicture=no suppresseventprocessing=no )
button(name=cb_13 band=header font.charset="204" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="12632256" filename="" action="0" vtextalign="0" htextalign="0" x="7214" y="0" height="80" width="946" color="0" text="Ïîñòàâùèê" defaultpicture=no suppresseventprocessing=no )
button(name=cb_27 band=header font.charset="204" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="2" background.color="13160660" filename="" action="0" vtextalign="0" htextalign="0" x="8169" y="0" height="80" width="283" color="0" text="Ïîñë. îáó÷" defaultpicture=no suppresseventprocessing=no )
button(band=footer font.charset="0" font.face="Arial" font.family="2" font.height="-12" font.pitch="2" font.weight="400" background.mode="2" background.color="14215660" filename="" action="0" vtextalign="0" htextalign="0" x="987" y="416" height="120" width="320" color="0" text="none" defaultpicture=no suppresseventprocessing=no )
button(name=bb_01 band=footer font.charset="0" font.face="Arial" font.family="2" font.height="-12" font.pitch="2" font.weight="400" background.mode="2" background.color="14215660" filename="" action="0" vtextalign="0" htextalign="0" x="581" y="116" height="120" width="320" color="0" text="none" defaultpicture=no suppresseventprocessing=no )
column(name=id band=detail id=11 x="265" y="0" height="60" width="160" color="0" border="0" alignment="1" format="0 " edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=b_firms_type_nam band=detail id=1 x="434" y="0" height="60" width="919" color="0" border="0" alignment="0" format="[general]" edit.focusrectangle=no edit.autohscroll=yes edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=48 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=b_firms_nam band=detail id=3 x="1362" y="0" height="60" width="1509" color="0" border="0" alignment="0" format="[general]" edit.focusrectangle=no edit.autohscroll=yes edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=96 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=b_firms_balance band=detail id=17 x="2880" y="0" height="60" width="283" color="0 if (b_firms_balance < 0 , RGB (255,0,0), RGB (0,0,0) )" border="0" alignment="1" format="0.00 " edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="16777215 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=b_firms_tel band=detail id=4 x="3173" y="0" height="60" width="302" color="0" border="0" alignment="0" format="[general]" edit.focusrectangle=no edit.autohscroll=yes edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=16 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=d_obl_nam band=detail id=16 x="3483" y="0" height="60" width="635" color="0" border="0" alignment="0" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=d_town_nam band=detail id=5 x="4128" y="0" height="60" width="302" color="0" border="0" alignment="0" format="[general]" edit.focusrectangle=no edit.autohscroll=yes edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=64 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=d_street_nam band=detail id=6 x="4439" y="0" height="60" width="727" color="0" border="0" alignment="0" format="[general]" edit.focusrectangle=no edit.autohscroll=yes edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=96 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=b_firms_f_adr_d band=detail id=7 x="5175" y="0" height="60" width="192" color="0" border="0" alignment="0" format="[general]" edit.focusrectangle=no edit.autohscroll=yes edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=16 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=b_firms_u_adr_k band=detail id=8 x="5376" y="0" height="60" width="151" color="0" border="0" alignment="0" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=cnam_p band=detail id=13 x="5536" y="0" height="60" width="434" color="0" border="0" alignment="0" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="16777215 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=cnam_eng band=detail id=14 x="5979" y="0" height="60" width="498" color="0" border="0" alignment="0" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=cnam_sopr band=detail id=15 x="6487" y="0" height="60" width="722" color="0" border="0" alignment="0" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=supp_nam band=detail id=19 x="7218" y="0" height="60" width="946" color="0" border="0" alignment="0" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
compute(name=ct band=detail font.charset="2" font.face="Wingdings" font.family="0" font.height="-10" font.pitch="2" font.weight="700" background.mode="0" background.color="16777215 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" color="255" x="9" y="0" height="60" width="137" format="[general]" expression="if (Len (b_firms_rem ) <> 0, '1', '')" alignment="2" border="0" crosstab.repeat=no )
column(name=b_firms_d_kategoria_name band=detail id=22 x="155" y="0" height="60" width="101" color="0" border="0" alignment="2" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="0" background.color="536870912 if ( b_firms_soprflag = 1, RGB (255,255,255), if (b_firms_soprflag = 2, RGB (0,255,255), RGB (255, 255, 255)))" font.charset="204" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
column(name=compute_0023 band=detail id=23 x="8174" y="0" height="60" width="279" color="0" border="0" alignment="0" format="[general]" edit.autohscroll=no edit.autoselect=yes edit.autovscroll=no edit.codetable=no edit.displayonly=no edit.hscrollbar=no edit.imemode=0 edit.limit=0 edit.password=no edit.vscrollbar=no edit.validatecode=no edit.nilisnull=no edit.required=no criteria.required=no criteria.override_edit=no crosstab.repeat=no background.mode="1" background.color="536870912" font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" tabsequence=0 )
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32266059
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос возвращает ~2000 записей, без группировок - ~6500 записей. Но ведь группировкой должен заниматься SQL server, а не приложение (я имею ввиду group by в SQL запросе)
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32266336
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблем скорее такой возник из-за того, что запрос был написан в графическом режиме. Переводом в ConvertToSyntax думаю больше не появлялась... Попробуйте.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32267013
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саня Павлов , сие запрос возвращает ~2000 записей, без группировок - ~6500 записей звучит по меньшей мере странно.
Каким образом GROUP BY clause может повлиять на количество рядов, принесенных SQL запросом?

Мало того, в вашем DW определен Sort, посему ваш GROUP BY clause будет попросту ИГНОРИРОВАН.

Разница между ISQL и РВ в основном в перерисовке, пересчёте компьютов и оценке выражений на свойствах объектов сидящих в DW.

В вашем приложении перед ретривом DW напишите SetRedraw(FALSE), а после SetRedraw(TRUE) и посмотрите (at runtime) будет ли разница...
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32267428
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Филипп
Например. Связь между таблицей Т1 и Т2 один-ко-многим, между Т3 и Т2 тоже один-ко-многим. Запрос: SELECT Т1.поле2, Т3.поле2 FROM T1,T2,T3 WHERE T1.поле1 = Т2.поле3 and Т2.поле4 = Т3.поле1 В том случае, когда Т3.поле2 для записи Т1 одинаково, то без GROUP BY строк для каждой записи из Т1 будет столько, сколько связанных записей в таблице Т2.

А разницы с использованием SetRedraw и без него нет.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32267466
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте ConvertToSyntax... Да Филипп ну и сморозил ты глупость :))
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32267474
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далее - не повод для обсуждения, просто напомню Филиппу, что группировка в селекте а не в DW, соответственно число записей становиться равно числу УНИКАЛЬНЫХ записей столбца(ов) по которым шла группировка. И это конечно обычно меньше числа запсей просто в селекте (без GROUP BY). Для этого он собственно и существует, чтобы набор данных группировать :))

Хотя конечно я лично уверен, что это просто Вы не поняли Филипп... И то что я здесь описал и сами знаете...
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32268324
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, про то что Group By делает implicit DISTINCT я и забыл :-))

Но с учетом количества элементов в GROUP BY
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 "B_FIRMS_TYPE" . "NAM"  ,
            "B_FIRMS" . "D_KATEGORIA_NAME"  ,
            "B_FIRMS_TYPE" . "ORD"  ,
            "B_FIRMS" . "NAM"  ,
            "B_FIRMS" . "OB_FLAG"  ,
            "B_FIRMS" . "TEL"  ,
            "D_TOWN" . "NAM"  ,
            "D_STREET" . "NAM"  ,
            "B_FIRMS" . "F_ADR_D"  ,
            "B_FIRMS" . "U_ADR_K"  ,
            "B_FIRMS_TYPE" . "ID"  ,
            "D_TOWN" . "ID"  ,
            "B_FIRMS" . "ID"  ,
            "B_DIST" . "A_D_INFO_GRP"  ,
            "B_DIST" . "A_D_INFO_ENG"  ,
            "B_DIST" . "A_D_DIST_SOPR"  ,
            "D_OBL" . "NAM"  ,
            "B_FIRMS" . "FILIAL"  ,
            "B_FIRMS" . "BALANCE"  ,
            "B_FIRMS" . "SOPRFLAG"  ,
            "B_FIRMS" . "REGFIRMS"  ,
            "B_FIRMS" . "REM"  

Разница в 4500 рядов звучит очень подозрительно.

При этом тот факт, что в DW определен Sort, НЕ совпадающий с GROUP BY означает, что он (Sort) собъёт сортировку, сделанную на сервере через GROUP BY.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32268654
Фотография alienzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А насчет процедуры с резульсетом что Вы думаете ?
Проблема не решиться ?
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32269129
Скажу про MS SQL(с Sybase не работал, но все же они родственники :))
Иногда приключается такая штука на сложных запросах - в Query Analizer нарисуешь запрос, использующий параметры, заведешь переменные, присвоишь им значения - запрос выполняется быстро. Копируешь в тело хранимой процедуры, переменные объявляешь как параметры процедуры - работает катастрофически медленно, план совсем другой.
Причина в том, что при генерации плана оптимизатор уже знает реальные значения параметров, а в хранимой процедуре - нет, потому он строит другой план.
Поэтому даже приходилось генерить текст запроса внутри хранимой процедуры и выполнять через exec (). Даже с учетом потерь на составление плана в онлайне это было лучше, а явно прописать план было невозможно :)

Кстати, поимев немало геморроя с отладкой/изменением таких запросов внутри PB, теперь все мало-мальски сложные запросы засовываю в SP на сервак. К примеру, захотел вместо подселектов использовать UDF - без проблем, клиент не меняется, или просто хинты оптимизатору расставить надо стало.
...
Рейтинг: 0 / 0
Вопрос по выполнению SQL запроса DW
    #32270058
Саня Павлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за помощь. Я думаю, что причина указана Ильей Зайцевым.
А проблему я решил следующим образом: убрал сортировку из DW и создал индекс в таблице b_dist.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по выполнению SQL запроса DW
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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