Datawindow performance disparity - runtime vs Interactive SQL and DW painter

Hi - I wonder if anyone can help me with a datawindow performance
issue?

I have an sql query which when run under the Interactive SQL tool
takes a fraction of a second.

If I run the datawindow under the DW painter with the proper
arguments, it takes fraction of a second.

But when the datawindow runs under retrieve conditions in normal
execution it takes about 5 minutes!

What is going on here?

The datawindow type is Treeview.

I am using PB Version 10.5, Build 4523.

The SQL query is listed below - yes - it is complex but it runs
perfectly well in Interactive SQL, and under the DB Painter with the
correct arguments.

  SELECT "evi_ma_01"."label",   
         "evi_ma_01"."name",   
         "evi_pa_01"."label",   
         "evi_de_01"."sequencenumber",   
         "evi_de_01"."characteristics",   
         "fil_pa_01"."label",   
         "fil_ma_01"."label",   
         "fil_ma_01"."file_name",   
         "elf_as_01"."id_parent",   
         "elf_as_01"."id_gparent",   
         "elf_as_01"."id_ggparent",   
         "elf_as_01"."id_associate",   
         "elf_as_01"."id_gassociate",   
         "elf_as_01"."id_passociate",   
         "elf_as_01"."id_instance",
         "elf_as_01"."delete_status"  
    FROM "evi_as_02",   
         "evi_ma_01",   
         "evi_as_01",   
         "evi_pa_01",   
         "evi_de_01",   
         "elf_as_01",   
         "fil_pa_01",   
         "fil_as_01",   
         "fil_ma_01",   
         "fil_as_02"  
   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
and  
         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and  
         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and  
         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
and  
         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and  
         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and  
         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
and  
         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
and  
         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND  
		( "elf_as_01"."delete_status" = 1 ) AND  
         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "evi_ma_01"."delete_status" = 0 ) AND  
         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND  
         ( "evi_as_02"."delete_status" = 0 ) AND  
         ( "evi_as_02"."selection" = 1 ) AND  
         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND  
         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "evi_as_01"."delete_status" = 0 ) AND  
         ( "evi_as_01"."selection" = 1 ) AND  
         ( "evi_as_01"."id_user" = :ia_current_id_user) AND  
         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND  
         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND  
         ("evi_pa_01"."delete_status" = 0) AND  
         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND  
         ("evi_de_01"."delete_status" = 0) AND  
         ("evi_de_01"."capability_attribute" = 1) AND  
         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "fil_ma_01"."delete_status" = 0 ) AND  
         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND  
         ( "fil_as_02"."delete_status" = 0 ) AND  
         ( "fil_as_02"."selection" = 1 ) AND  
         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND 
         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND   
         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "fil_as_01"."delete_status" = 0 ) AND  
         ( "fil_as_01"."selection" = 1 ) AND  
         ( "fil_as_01"."id_user" = :ia_current_id_user) AND 
         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND   
         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND  
         ( "fil_pa_01"."delete_status" = 0))    

UNION

  SELECT "evi_ma_01"."label",   
         "evi_ma_01"."name",   
         "evi_pa_01"."label",   
         "evi_de_01"."sequencenumber",   
         "evi_de_01"."characteristics",   
         "fil_pa_01"."label",   
         "fil_ma_01"."label",   
         "fil_ma_01"."file_name",   
         "elf_as_01"."id_parent",   
         "elf_as_01"."id_gparent",   
         "elf_as_01"."id_ggparent",   
         "elf_as_01"."id_associate",   
         "elf_as_01"."id_gassociate",   
         "elf_as_01"."id_passociate",   
         "elf_as_01"."id_instance",
         "elf_as_01"."delete_status"  
    FROM "evi_as_02",   
         "evi_ma_01",   
         "evi_as_01",   
         "evi_pa_01",   
         "evi_de_01",   
         "elf_as_01",   
         "fil_pa_01",   
         "fil_as_01",   
         "fil_ma_01",   
         "fil_as_02"  
   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
and  
         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and  
         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and  
         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
and  
         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and  
         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and  
         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
and  
         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
and  
         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND  
		( "elf_as_01"."delete_status" = 1 ) AND  
         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "evi_ma_01"."delete_status" = 0 ) AND  
         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND  
         ( "evi_as_02"."delete_status" = 0 ) AND  
         ( "evi_as_02"."selection" = 1 ) AND  
         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND  
         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "evi_as_01"."delete_status" = 0 ) AND  
         ( "evi_as_01"."selection" = 1 ) AND  
         ( "evi_as_01"."id_user" = :ia_current_id_user) AND  
         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND  
         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND  
         ("evi_pa_01"."delete_status" = 0) AND  
         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND  
         ("evi_de_01"."delete_status" = 0) AND  
         ("evi_de_01"."capability_attribute" > 1) AND  
         ("evi_de_01"."modeltype" = :ia_current_modeltype) AND  
         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "fil_ma_01"."delete_status" = 0 ) AND  
         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND  
         ( "fil_as_02"."delete_status" = 0 ) AND  
         ( "fil_as_02"."selection" = 1 ) AND  
         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND 
         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND   
         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND  
         ( "fil_as_01"."delete_status" = 0 ) AND  
         ( "fil_as_01"."selection" = 1 ) AND  
         ( "fil_as_01"."id_user" = :ia_current_id_user) AND 
         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND   
         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND  
         ( "fil_pa_01"."delete_status" = 0))   

0
Alastair
1/12/2011 10:57:43 AM
sybase.powerbuilder.datawindow 28057 articles. 4 followers. Follow

6 Replies
851 Views

Similar Articles

[PageSpeed] 41

Hi Alastair;

1) Is this against the same DBMS instance as in development when running 
under application control?
2) Are you running the tree view DWO in the DW painter during your tests?
3) What happens when you run this SQL from inside the DB Painter of PB (ISQL 
Pane)?


Regards ... Chris
President: OSUG / STD Inc.
Blog: http://chrispollach.blogspot.com
PBDJ: http://chrispollach.sys-con.com
SourceForge: http://sourceforge.net/projects/stdfndclass

"Alastair Walker"  wrote in message 
news:4t1ri6tlfqb5c7f9f4td56o4e801o05s2u@4ax.com...

Hi - I wonder if anyone can help me with a datawindow performance
issue?

I have an sql query which when run under the Interactive SQL tool
takes a fraction of a second.

If I run the datawindow under the DW painter with the proper
arguments, it takes fraction of a second.

But when the datawindow runs under retrieve conditions in normal
execution it takes about 5 minutes!

What is going on here?

The datawindow type is Treeview.

I am using PB Version 10.5, Build 4523.

The SQL query is listed below - yes - it is complex but it runs
perfectly well in Interactive SQL, and under the DB Painter with the
correct arguments.

  SELECT "evi_ma_01"."label",
         "evi_ma_01"."name",
         "evi_pa_01"."label",
         "evi_de_01"."sequencenumber",
         "evi_de_01"."characteristics",
         "fil_pa_01"."label",
         "fil_ma_01"."label",
         "fil_ma_01"."file_name",
         "elf_as_01"."id_parent",
         "elf_as_01"."id_gparent",
         "elf_as_01"."id_ggparent",
         "elf_as_01"."id_associate",
         "elf_as_01"."id_gassociate",
         "elf_as_01"."id_passociate",
         "elf_as_01"."id_instance",
         "elf_as_01"."delete_status"
    FROM "evi_as_02",
         "evi_ma_01",
         "evi_as_01",
         "evi_pa_01",
         "evi_de_01",
         "elf_as_01",
         "fil_pa_01",
         "fil_as_01",
         "fil_ma_01",
         "fil_as_02"
   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
and
         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
and
         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
and
         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
and
         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
( "elf_as_01"."delete_status" = 1 ) AND
         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "evi_ma_01"."delete_status" = 0 ) AND
         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
         ( "evi_as_02"."delete_status" = 0 ) AND
         ( "evi_as_02"."selection" = 1 ) AND
         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "evi_as_01"."delete_status" = 0 ) AND
         ( "evi_as_01"."selection" = 1 ) AND
         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
         ("evi_pa_01"."delete_status" = 0) AND
         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
         ("evi_de_01"."delete_status" = 0) AND
         ("evi_de_01"."capability_attribute" = 1) AND
         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "fil_ma_01"."delete_status" = 0 ) AND
         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
         ( "fil_as_02"."delete_status" = 0 ) AND
         ( "fil_as_02"."selection" = 1 ) AND
         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "fil_as_01"."delete_status" = 0 ) AND
         ( "fil_as_01"."selection" = 1 ) AND
         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
         ( "fil_pa_01"."delete_status" = 0))

UNION

  SELECT "evi_ma_01"."label",
         "evi_ma_01"."name",
         "evi_pa_01"."label",
         "evi_de_01"."sequencenumber",
         "evi_de_01"."characteristics",
         "fil_pa_01"."label",
         "fil_ma_01"."label",
         "fil_ma_01"."file_name",
         "elf_as_01"."id_parent",
         "elf_as_01"."id_gparent",
         "elf_as_01"."id_ggparent",
         "elf_as_01"."id_associate",
         "elf_as_01"."id_gassociate",
         "elf_as_01"."id_passociate",
         "elf_as_01"."id_instance",
         "elf_as_01"."delete_status"
    FROM "evi_as_02",
         "evi_ma_01",
         "evi_as_01",
         "evi_pa_01",
         "evi_de_01",
         "elf_as_01",
         "fil_pa_01",
         "fil_as_01",
         "fil_ma_01",
         "fil_as_02"
   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
and
         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
and
         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
and
         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
and
         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
( "elf_as_01"."delete_status" = 1 ) AND
         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "evi_ma_01"."delete_status" = 0 ) AND
         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
         ( "evi_as_02"."delete_status" = 0 ) AND
         ( "evi_as_02"."selection" = 1 ) AND
         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "evi_as_01"."delete_status" = 0 ) AND
         ( "evi_as_01"."selection" = 1 ) AND
         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
         ("evi_pa_01"."delete_status" = 0) AND
         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
         ("evi_de_01"."delete_status" = 0) AND
         ("evi_de_01"."capability_attribute" > 1) AND
         ("evi_de_01"."modeltype" = :ia_current_modeltype) AND
         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "fil_ma_01"."delete_status" = 0 ) AND
         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
         ( "fil_as_02"."delete_status" = 0 ) AND
         ( "fil_as_02"."selection" = 1 ) AND
         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
         ( "fil_as_01"."delete_status" = 0 ) AND
         ( "fil_as_01"."selection" = 1 ) AND
         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
         ( "fil_pa_01"."delete_status" = 0)) 

0
Chris
1/12/2011 4:22:38 PM
Hi - Chris - thank you for following up with the note below. It is
much appreciated!

I discovered perhaps the major reason for the long delay was that I
needed an extra AND condition in the SQL - that reduced the 5 minutes
to about 10 seconds delay in displaying the report.

So - in this case - I put the root cause down to an 'incomplete'
query.

But I am still puzzled that I have very different time performances
between Interactive SQL, running the Treeview DWO under the DB
painter, and the execution version.

One thing - I was not aware that I could run the SQL from inside the
DB painter. How is this done?

Best regards, and many thanks,

Alastair Walker

On 12 Jan 2011 08:22:38 -0800, "Chris Pollach"
<cpollach@travel-net.com> wrote:

>Hi Alastair;
>
>1) Is this against the same DBMS instance as in development when running 
>under application control?
>2) Are you running the tree view DWO in the DW painter during your tests?
>3) What happens when you run this SQL from inside the DB Painter of PB (ISQL 
>Pane)?
>
>
>Regards ... Chris
>President: OSUG / STD Inc.
>Blog: http://chrispollach.blogspot.com
>PBDJ: http://chrispollach.sys-con.com
>SourceForge: http://sourceforge.net/projects/stdfndclass
>
>"Alastair Walker"  wrote in message 
>news:4t1ri6tlfqb5c7f9f4td56o4e801o05s2u@4ax.com...
>
>Hi - I wonder if anyone can help me with a datawindow performance
>issue?
>
>I have an sql query which when run under the Interactive SQL tool
>takes a fraction of a second.
>
>If I run the datawindow under the DW painter with the proper
>arguments, it takes fraction of a second.
>
>But when the datawindow runs under retrieve conditions in normal
>execution it takes about 5 minutes!
>
>What is going on here?
>
>The datawindow type is Treeview.
>
>I am using PB Version 10.5, Build 4523.
>
>The SQL query is listed below - yes - it is complex but it runs
>perfectly well in Interactive SQL, and under the DB Painter with the
>correct arguments.
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" = 1) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0))
>
>UNION
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" > 1) AND
>         ("evi_de_01"."modeltype" = :ia_current_modeltype) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0)) 
0
Alastair
1/13/2011 12:26:55 PM
There is a ISQL Session tab right in the database painter. Make sure to 
configure the SQL Terminator character under the menu 'Design, Options'.

-- Terry Dykstra (TeamSybase)
http://powerbuilder.codeXchange.sybase.com/
http://casexpress.sybase.com
http://my.isug.com/cgi-bin/1/c/submit_enhancement

"Alastair Walker"  wrote in message 
news:6irti6t4398vietse4thq2vgan20pfnoot@4ax.com...

Hi - Chris - thank you for following up with the note below. It is
much appreciated!

I discovered perhaps the major reason for the long delay was that I
needed an extra AND condition in the SQL - that reduced the 5 minutes
to about 10 seconds delay in displaying the report.

So - in this case - I put the root cause down to an 'incomplete'
query.

But I am still puzzled that I have very different time performances
between Interactive SQL, running the Treeview DWO under the DB
painter, and the execution version.

One thing - I was not aware that I could run the SQL from inside the
DB painter. How is this done?

Best regards, and many thanks,

Alastair Walker

On 12 Jan 2011 08:22:38 -0800, "Chris Pollach"
<cpollach@travel-net.com> wrote:

>Hi Alastair;
>
>1) Is this against the same DBMS instance as in development when running
>under application control?
>2) Are you running the tree view DWO in the DW painter during your tests?
>3) What happens when you run this SQL from inside the DB Painter of PB 
>(ISQL
>Pane)?
>
>
>Regards ... Chris
>President: OSUG / STD Inc.
>Blog: http://chrispollach.blogspot.com
>PBDJ: http://chrispollach.sys-con.com
>SourceForge: http://sourceforge.net/projects/stdfndclass
>
>"Alastair Walker"  wrote in message
>news:4t1ri6tlfqb5c7f9f4td56o4e801o05s2u@4ax.com...
>
>Hi - I wonder if anyone can help me with a datawindow performance
>issue?
>
>I have an sql query which when run under the Interactive SQL tool
>takes a fraction of a second.
>
>If I run the datawindow under the DW painter with the proper
>arguments, it takes fraction of a second.
>
>But when the datawindow runs under retrieve conditions in normal
>execution it takes about 5 minutes!
>
>What is going on here?
>
>The datawindow type is Treeview.
>
>I am using PB Version 10.5, Build 4523.
>
>The SQL query is listed below - yes - it is complex but it runs
>perfectly well in Interactive SQL, and under the DB Painter with the
>correct arguments.
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" = 1) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0))
>
>UNION
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" > 1) AND
>         ("evi_de_01"."modeltype" = :ia_current_modeltype) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0)) 

0
Terry
1/13/2011 3:13:21 PM
OK ... sounds like the AND condition did you in - that would certainly 
explain the response difference.  :-)

When you open the DW Painter ...

1) select View => Layouts => (default)
2) Select the "ISQL Session" tab in the lower pane (see attached)
3) Paste your SQL statement into the ISQL Session pane
4) Add a semi-colon ( ; ) to the end of the SQL statement
5) Click the Execute icon on the DB Painter's toolbar.
    (OR RHMB in the pane an choose the "Execute" menu item.


Tip: RHMB in the iSQL Session pane and select the "Explain" menu item to see 
what the SQL optimizer says about your DML statement.



"Alastair Walker"  wrote in message 
news:6irti6t4398vietse4thq2vgan20pfnoot@4ax.com...

Hi - Chris - thank you for following up with the note below. It is
much appreciated!

I discovered perhaps the major reason for the long delay was that I
needed an extra AND condition in the SQL - that reduced the 5 minutes
to about 10 seconds delay in displaying the report.

So - in this case - I put the root cause down to an 'incomplete'
query.

But I am still puzzled that I have very different time performances
between Interactive SQL, running the Treeview DWO under the DB
painter, and the execution version.

One thing - I was not aware that I could run the SQL from inside the
DB painter. How is this done?

Best regards, and many thanks,

Alastair Walker

On 12 Jan 2011 08:22:38 -0800, "Chris Pollach"
<cpollach@travel-net.com> wrote:

>Hi Alastair;
>
>1) Is this against the same DBMS instance as in development when running
>under application control?
>2) Are you running the tree view DWO in the DW painter during your tests?
>3) What happens when you run this SQL from inside the DB Painter of PB 
>(ISQL
>Pane)?
>
>
>Regards ... Chris
>President: OSUG / STD Inc.
>Blog: http://chrispollach.blogspot.com
>PBDJ: http://chrispollach.sys-con.com
>SourceForge: http://sourceforge.net/projects/stdfndclass
>
>"Alastair Walker"  wrote in message
>news:4t1ri6tlfqb5c7f9f4td56o4e801o05s2u@4ax.com...
>
>Hi - I wonder if anyone can help me with a datawindow performance
>issue?
>
>I have an sql query which when run under the Interactive SQL tool
>takes a fraction of a second.
>
>If I run the datawindow under the DW painter with the proper
>arguments, it takes fraction of a second.
>
>But when the datawindow runs under retrieve conditions in normal
>execution it takes about 5 minutes!
>
>What is going on here?
>
>The datawindow type is Treeview.
>
>I am using PB Version 10.5, Build 4523.
>
>The SQL query is listed below - yes - it is complex but it runs
>perfectly well in Interactive SQL, and under the DB Painter with the
>correct arguments.
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" = 1) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0))
>
>UNION
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" > 1) AND
>         ("evi_de_01"."modeltype" = :ia_current_modeltype) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0)) 

0
Chris
1/13/2011 9:54:38 PM
This is a multi-part message in MIME format.

------=_NextPart_000_0136_01CBB35C.B05625B0
Content-Type: text/plain;
	format=flowed;
	charset="iso-8859-1";
	reply-type=response
Content-Transfer-Encoding: 7bit

Ooops ... here is the attached




"Chris Pollach"  wrote in message news:4d2f749e$1@forums-1-dub...

OK ... sounds like the AND condition did you in - that would certainly
explain the response difference.  :-)

When you open the DW Painter ...

1) select View => Layouts => (default)
2) Select the "ISQL Session" tab in the lower pane (see attached)
3) Paste your SQL statement into the ISQL Session pane
4) Add a semi-colon ( ; ) to the end of the SQL statement
5) Click the Execute icon on the DB Painter's toolbar.
    (OR RHMB in the pane an choose the "Execute" menu item.


Tip: RHMB in the iSQL Session pane and select the "Explain" menu item to see
what the SQL optimizer says about your DML statement.



"Alastair Walker"  wrote in message
news:6irti6t4398vietse4thq2vgan20pfnoot@4ax.com...

Hi - Chris - thank you for following up with the note below. It is
much appreciated!

I discovered perhaps the major reason for the long delay was that I
needed an extra AND condition in the SQL - that reduced the 5 minutes
to about 10 seconds delay in displaying the report.

So - in this case - I put the root cause down to an 'incomplete'
query.

But I am still puzzled that I have very different time performances
between Interactive SQL, running the Treeview DWO under the DB
painter, and the execution version.

One thing - I was not aware that I could run the SQL from inside the
DB painter. How is this done?

Best regards, and many thanks,

Alastair Walker

On 12 Jan 2011 08:22:38 -0800, "Chris Pollach"
<cpollach@travel-net.com> wrote:

>Hi Alastair;
>
>1) Is this against the same DBMS instance as in development when running
>under application control?
>2) Are you running the tree view DWO in the DW painter during your tests?
>3) What happens when you run this SQL from inside the DB Painter of PB 
>(ISQL
>Pane)?
>
>
>Regards ... Chris
>President: OSUG / STD Inc.
>Blog: http://chrispollach.blogspot.com
>PBDJ: http://chrispollach.sys-con.com
>SourceForge: http://sourceforge.net/projects/stdfndclass
>
>"Alastair Walker"  wrote in message
>news:4t1ri6tlfqb5c7f9f4td56o4e801o05s2u@4ax.com...
>
>Hi - I wonder if anyone can help me with a datawindow performance
>issue?
>
>I have an sql query which when run under the Interactive SQL tool
>takes a fraction of a second.
>
>If I run the datawindow under the DW painter with the proper
>arguments, it takes fraction of a second.
>
>But when the datawindow runs under retrieve conditions in normal
>execution it takes about 5 minutes!
>
>What is going on here?
>
>The datawindow type is Treeview.
>
>I am using PB Version 10.5, Build 4523.
>
>The SQL query is listed below - yes - it is complex but it runs
>perfectly well in Interactive SQL, and under the DB Painter with the
>correct arguments.
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" = 1) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0))
>
>UNION
>
>  SELECT "evi_ma_01"."label",
>         "evi_ma_01"."name",
>         "evi_pa_01"."label",
>         "evi_de_01"."sequencenumber",
>         "evi_de_01"."characteristics",
>         "fil_pa_01"."label",
>         "fil_ma_01"."label",
>         "fil_ma_01"."file_name",
>         "elf_as_01"."id_parent",
>         "elf_as_01"."id_gparent",
>         "elf_as_01"."id_ggparent",
>         "elf_as_01"."id_associate",
>         "elf_as_01"."id_gassociate",
>         "elf_as_01"."id_passociate",
>         "elf_as_01"."id_instance",
>         "elf_as_01"."delete_status"
>    FROM "evi_as_02",
>         "evi_ma_01",
>         "evi_as_01",
>         "evi_pa_01",
>         "evi_de_01",
>         "elf_as_01",
>         "fil_pa_01",
>         "fil_as_01",
>         "fil_ma_01",
>         "fil_as_02"
>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>and
>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>and
>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>and
>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>and
>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>( "elf_as_01"."delete_status" = 1 ) AND
>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_ma_01"."delete_status" = 0 ) AND
>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "evi_as_02"."delete_status" = 0 ) AND
>         ( "evi_as_02"."selection" = 1 ) AND
>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "evi_as_01"."delete_status" = 0 ) AND
>         ( "evi_as_01"."selection" = 1 ) AND
>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_pa_01"."delete_status" = 0) AND
>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>         ("evi_de_01"."delete_status" = 0) AND
>         ("evi_de_01"."capability_attribute" > 1) AND
>         ("evi_de_01"."modeltype" = :ia_current_modeltype) AND
>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_ma_01"."delete_status" = 0 ) AND
>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>         ( "fil_as_02"."delete_status" = 0 ) AND
>         ( "fil_as_02"."selection" = 1 ) AND
>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>         ( "fil_as_01"."delete_status" = 0 ) AND
>         ( "fil_as_01"."selection" = 1 ) AND
>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>         ( "fil_pa_01"."delete_status" = 0)) 

------=_NextPart_000_0136_01CBB35C.B05625B0
Content-Type: image/png;
	name="ISQL_Painter.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="ISQL_Painter.png"

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
RU5ErkJggg==

------=_NextPart_000_0136_01CBB35C.B05625B0--

0
Chris
1/14/2011 1:01:42 AM
Thank you so much - Terry and Chris - for bringing to my attention the
ISQL feature.

I now have discovered a 'new' feature in PB and how to use it!

And to think that I have been using PB since PB 6.5! (I started in
1996!) (Notwithstanding all the recent developments in other tools, PB
is still a marvellous, extremely productive, tool for me!)

It goes to show - you can learn something new everyday!

Best regards,

Alastair

On 13 Jan 2011 17:01:42 -0800, "Chris Pollach"
<cpollach@travel-net.com> wrote:

>Ooops ... here is the attached
>
>
>
>
>"Chris Pollach"  wrote in message news:4d2f749e$1@forums-1-dub...
>
>OK ... sounds like the AND condition did you in - that would certainly
>explain the response difference.  :-)
>
>When you open the DW Painter ...
>
>1) select View => Layouts => (default)
>2) Select the "ISQL Session" tab in the lower pane (see attached)
>3) Paste your SQL statement into the ISQL Session pane
>4) Add a semi-colon ( ; ) to the end of the SQL statement
>5) Click the Execute icon on the DB Painter's toolbar.
>    (OR RHMB in the pane an choose the "Execute" menu item.
>
>
>Tip: RHMB in the iSQL Session pane and select the "Explain" menu item to see
>what the SQL optimizer says about your DML statement.
>
>
>
>"Alastair Walker"  wrote in message
>news:6irti6t4398vietse4thq2vgan20pfnoot@4ax.com...
>
>Hi - Chris - thank you for following up with the note below. It is
>much appreciated!
>
>I discovered perhaps the major reason for the long delay was that I
>needed an extra AND condition in the SQL - that reduced the 5 minutes
>to about 10 seconds delay in displaying the report.
>
>So - in this case - I put the root cause down to an 'incomplete'
>query.
>
>But I am still puzzled that I have very different time performances
>between Interactive SQL, running the Treeview DWO under the DB
>painter, and the execution version.
>
>One thing - I was not aware that I could run the SQL from inside the
>DB painter. How is this done?
>
>Best regards, and many thanks,
>
>Alastair Walker
>
>On 12 Jan 2011 08:22:38 -0800, "Chris Pollach"
><cpollach@travel-net.com> wrote:
>
>>Hi Alastair;
>>
>>1) Is this against the same DBMS instance as in development when running
>>under application control?
>>2) Are you running the tree view DWO in the DW painter during your tests?
>>3) What happens when you run this SQL from inside the DB Painter of PB 
>>(ISQL
>>Pane)?
>>
>>
>>Regards ... Chris
>>President: OSUG / STD Inc.
>>Blog: http://chrispollach.blogspot.com
>>PBDJ: http://chrispollach.sys-con.com
>>SourceForge: http://sourceforge.net/projects/stdfndclass
>>
>>"Alastair Walker"  wrote in message
>>news:4t1ri6tlfqb5c7f9f4td56o4e801o05s2u@4ax.com...
>>
>>Hi - I wonder if anyone can help me with a datawindow performance
>>issue?
>>
>>I have an sql query which when run under the Interactive SQL tool
>>takes a fraction of a second.
>>
>>If I run the datawindow under the DW painter with the proper
>>arguments, it takes fraction of a second.
>>
>>But when the datawindow runs under retrieve conditions in normal
>>execution it takes about 5 minutes!
>>
>>What is going on here?
>>
>>The datawindow type is Treeview.
>>
>>I am using PB Version 10.5, Build 4523.
>>
>>The SQL query is listed below - yes - it is complex but it runs
>>perfectly well in Interactive SQL, and under the DB Painter with the
>>correct arguments.
>>
>>  SELECT "evi_ma_01"."label",
>>         "evi_ma_01"."name",
>>         "evi_pa_01"."label",
>>         "evi_de_01"."sequencenumber",
>>         "evi_de_01"."characteristics",
>>         "fil_pa_01"."label",
>>         "fil_ma_01"."label",
>>         "fil_ma_01"."file_name",
>>         "elf_as_01"."id_parent",
>>         "elf_as_01"."id_gparent",
>>         "elf_as_01"."id_ggparent",
>>         "elf_as_01"."id_associate",
>>         "elf_as_01"."id_gassociate",
>>         "elf_as_01"."id_passociate",
>>         "elf_as_01"."id_instance",
>>         "elf_as_01"."delete_status"
>>    FROM "evi_as_02",
>>         "evi_ma_01",
>>         "evi_as_01",
>>         "evi_pa_01",
>>         "evi_de_01",
>>         "elf_as_01",
>>         "fil_pa_01",
>>         "fil_as_01",
>>         "fil_ma_01",
>>         "fil_as_02"
>>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>>and
>>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>>and
>>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>>and
>>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>>and
>>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>>( "elf_as_01"."delete_status" = 1 ) AND
>>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "evi_ma_01"."delete_status" = 0 ) AND
>>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>>         ( "evi_as_02"."delete_status" = 0 ) AND
>>         ( "evi_as_02"."selection" = 1 ) AND
>>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "evi_as_01"."delete_status" = 0 ) AND
>>         ( "evi_as_01"."selection" = 1 ) AND
>>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>>         ("evi_pa_01"."delete_status" = 0) AND
>>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>>         ("evi_de_01"."delete_status" = 0) AND
>>         ("evi_de_01"."capability_attribute" = 1) AND
>>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "fil_ma_01"."delete_status" = 0 ) AND
>>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>>         ( "fil_as_02"."delete_status" = 0 ) AND
>>         ( "fil_as_02"."selection" = 1 ) AND
>>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "fil_as_01"."delete_status" = 0 ) AND
>>         ( "fil_as_01"."selection" = 1 ) AND
>>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>>         ( "fil_pa_01"."delete_status" = 0))
>>
>>UNION
>>
>>  SELECT "evi_ma_01"."label",
>>         "evi_ma_01"."name",
>>         "evi_pa_01"."label",
>>         "evi_de_01"."sequencenumber",
>>         "evi_de_01"."characteristics",
>>         "fil_pa_01"."label",
>>         "fil_ma_01"."label",
>>         "fil_ma_01"."file_name",
>>         "elf_as_01"."id_parent",
>>         "elf_as_01"."id_gparent",
>>         "elf_as_01"."id_ggparent",
>>         "elf_as_01"."id_associate",
>>         "elf_as_01"."id_gassociate",
>>         "elf_as_01"."id_passociate",
>>         "elf_as_01"."id_instance",
>>         "elf_as_01"."delete_status"
>>    FROM "evi_as_02",
>>         "evi_ma_01",
>>         "evi_as_01",
>>         "evi_pa_01",
>>         "evi_de_01",
>>         "elf_as_01",
>>         "fil_pa_01",
>>         "fil_as_01",
>>         "fil_ma_01",
>>         "fil_as_02"
>>   WHERE ( "evi_as_02"."id_associate" = "evi_ma_01"."id_instance" )
>>and
>>         ( "evi_as_01"."id_associate" = "evi_ma_01"."id_parent" ) and
>>( "evi_as_01"."id_associate" = "evi_pa_01"."id_instance" ) and
>>         ( "evi_de_01"."id_parent" = "evi_ma_01"."id_instance" ) and
>>         ( "fil_as_02"."id_associate" = "fil_ma_01"."id_instance" )
>>and
>>         ( "fil_as_01"."id_associate" = "fil_ma_01"."id_parent" ) and
>>( "fil_ma_01"."id_parent" = "fil_pa_01"."id_instance" ) and
>>         ( "elf_as_01"."id_ggparent" = "evi_pa_01"."id_instance" ) and
>>( "elf_as_01"."id_parent" = "evi_de_01"."id_instance" ) and
>>         ( "elf_as_01"."id_gassociate" = "fil_pa_01"."id_instance" )
>>and
>>         ( "fil_ma_01"."id_instance" = "elf_as_01"."id_associate" )
>>and
>>         ( ( "elf_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>>( "elf_as_01"."delete_status" = 1 ) AND
>>         ( "evi_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "evi_ma_01"."delete_status" = 0 ) AND
>>         ( "evi_as_02"."id_user" = :ia_current_id_user ) AND
>>         ( "evi_as_02"."delete_status" = 0 ) AND
>>         ( "evi_as_02"."selection" = 1 ) AND
>>         ( "evi_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "evi_as_02"."id_context" = :ia_current_id_context ) AND
>>         ( "evi_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "evi_as_01"."delete_status" = 0 ) AND
>>         ( "evi_as_01"."selection" = 1 ) AND
>>         ( "evi_as_01"."id_user" = :ia_current_id_user) AND
>>         ( "evi_as_01"."id_context" = :ia_current_id_context ) AND
>>         ("evi_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>>         ("evi_pa_01"."delete_status" = 0) AND
>>         ("evi_de_01"."id_dataset" = :ia_current_dataset_id) AND
>>         ("evi_de_01"."delete_status" = 0) AND
>>         ("evi_de_01"."capability_attribute" > 1) AND
>>         ("evi_de_01"."modeltype" = :ia_current_modeltype) AND
>>         ( "fil_ma_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "fil_ma_01"."delete_status" = 0 ) AND
>>         ( "fil_as_02"."id_user" = :ia_current_id_user ) AND
>>         ( "fil_as_02"."delete_status" = 0 ) AND
>>         ( "fil_as_02"."selection" = 1 ) AND
>>         ( "fil_as_02"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "fil_as_02"."id_context" = :ia_current_id_context ) AND
>>         ( "fil_as_01"."id_dataset" = :ia_current_dataset_id ) AND
>>         ( "fil_as_01"."delete_status" = 0 ) AND
>>         ( "fil_as_01"."selection" = 1 ) AND
>>         ( "fil_as_01"."id_user" = :ia_current_id_user) AND
>>         ( "fil_as_01"."id_context" = :ia_current_id_context ) AND
>>         ( "fil_pa_01"."id_dataset" = :ia_current_dataset_id) AND
>>         ( "fil_pa_01"."delete_status" = 0)) 
0
Alastair
1/14/2011 6:24:37 AM
Reply:

Similar Artilces:

DataWindow This, DataWindow That...
Blah blah blah You've heard it enough that you don't even want to comment on how many times... The DataWindow. ....but it can't be enough anymore...can it? This from one of our colleagues (and yes my apologies for taking it out of context)... "...PB covers all you need to do that in ONE Tool. This includes Windowprogramming ( meaning the interface to the user: Windows, Sheets, diallougeboxes, etc.), Database operability AND Reporting! Well, I see als well as many other PB users that some of the implementations and features PB offers are improvable. But thi...

Problems within Datawindow Painter (SQL Painter)
When in the SQL Painter I receive a Database error when exiting and any changes to the SQL are lost. I just installed the EBF Build 8046. Within the documentation for this EBF it speaks to not being able to use '*=' any longer. We do not use that syntax but rather 'LEFT OUTER JOIN'. I copied the syntax that was in the EBF notes but this also gave the same error. Looking for someone who has had this problem and has a work around. There are things within the 8046 build that we require, but if this can not be fixed I guess I will have to go back to 8011. Than...

Html-datawindow vs web-datawindow
Hi! We have mede some pages using datawindowbuilder. There we used html-datawindows. Now we have upgraded to PB8 and here it is called web-datawindow. What is the differense? 40% of the pages arnt working after we migrated to PB8. It seems like there have been some changes? Regards Staale What errors are you seeing with the problem pages? A. Staale wrote: > Hi! > > We have mede some pages using datawindowbuilder. > There we used html-datawindows. > Now we have upgraded to PB8 and here it is called web-datawindow. > What is the differense? >...

Datawindow painter excruciatingly slow on some datawindows
PB 7.0.03 Bld 10009, Oracle 7.3 What kinds of things make the datawindow and/or SQL painters "stop and think"? The client has some datawindows that are *painfully* slow when opening the SQL painter for the datawindow. The one I'm waiting on right now is in grid style. The SQL is in non-graphic mode and has a select with 14 tables with appropriate joins and a long list in the GROUP BY section. Preview mode is off. I've been waiting for 5 minutes. I've had these take 8 - 10 minutes before. This takes a mean bite out of productivity. jshark I wo...

SQL
pb 7.0.3 I cant seem to make the following query in SQL data source painter: SELECT coa.coa_code, coa.account_group1, accountgroups.ac_group_code FROM coa INNER JOIN accountgroups ON coa.account_group1=accountgroups.ac_group_code; it appears that the SQL data source painter in dw allows INNER JOIN where names of columns are same in both the tables. The above works when i issues Raw select command in my scripts or use createfromsynatx() .. Is there a way to write manual queries that can be made as data source of a datawindow ? Thanks Nohman oh well i didnt look at the...

Powerbuilder Datawindow Painter.
We have developed an application that allows user to create custom data entry windows using datawindow painter dw60.exe (PB 6.5.1). This works very well for our users who are non IT people. The problem we have is that dw60.exe is distributed with the Powerbuilder but not sold as a separate purchasable product. After discussions with Sybase representatives we have each user purchase a copy of Infomaker to make them 'legal'. We are not totally happy with this situation as we move forward to PB 8 also we are not sure if there is a dw80.exe or whether this will be supp...

SQL vs Datawindow
Hi All, I was wondering if there were reasons for utilizing SQL and not a Datawindow or a Datastore when performing an update or insert? Is there a preferable way. Which is better? Thanks The preferable way is whatever works, Sorry had to say it ;-). This is a subject where you are going to get a lot of different opinions. In my opinion I like to use a datawindow or datastore for any updates or inserts where there is more then one record affected. For the times when there is only one record affected I create a function on a userobject and do it from there. One of the thing...

Datawindow Painter Performance
When moving several items in datawindows as a group, cpu utilization goes to 100% and performance becomes dismal. Also, we have noticed hesitant performace in library painter. I am running version 7.0.3 build 10135 of Powerbuilder. Is there a fix out for this problems? If so, what build? Never heard of this problem, but you can check the release notes of subsequent builds pretty easily. Build 10312 is going to be the last build of PB7, since it's not supported anymore. Good luck, Terry [TeamSybase] and Sequel the techno-kitten On 24 Sep 2003 09:04:40 -0700, tmarquard wrot...

Datawindow SQL Painter sometimes crashes when opening SQL in PB9
We recently migrated from PB7 to PB9. I have a few datawindows that open fine in PB7 but when I open the SQL in PB9, PowerBuiler crashes. These datawindows work fine in the executable PB9 application, but I can't open the SQL. Termination error reads: "AppName: pb90.exe AppVer: 9.0.0.5507 ModName: pbsql90.dll ModVer: 9.0.0.6066 Offset: 0005c8f" I don't know of any common thread in these few datawindows that would make them have problems while most of the other datawindows do not. I noticed that a few other people have posted this (or a s...

How to share the datawindow to inner datawindow of nested datawindow
How to share the datawindow to inner datawindow of nested datawindow. Ex -------- dw_1 is normal datawindow dw_nes is nested datawindow, both are placed one window dw_nes contain dw_child datawindow Question ---------------- i want to share dw_1 and dw_child. I have tried the below code, getting error dw_1.sharedata( dw_nes.object.dw_child) It's the dot notation. You will need to dw_nes.GetChild("dw_child", ldwc) where ldwc is a _local_ datawindowchild. <kzganesan@gmail.com> wrote in message news:4c64c402-bac5-4ee0-83aa-4ac08ffe43e5@r66g2000hsg.go...

HTML Datawindow DTC vs. Datawindow DTC
Can anyone tell me if the HTML Datawindow DTC provides an 'easy' way to make columns sortable like you can in the Datawindow DTC? Thanks, NP To do this you can code the following: <SCRIPT> htmlDW.SetSort('#1 A'); htmlDW.Sort(); </SCRIPT> This code could be tied to a drop down list box or a set of radio buttons that contains the column names to be sorted. Regards, Dan van Leeuwen On Wed, 12 May 1999 16:48:40 -0500, "Noah Pruzek" <npruzek@hotmail.com> wrote: >Can anyone tell me if the HTML Datawindow DTC provides an...

changing datawindow connection is breaking my datawindow SQL
Hi I have had to move a number of datawindows from Oracle 9i running on a windows 2003 to Oracle 9i on AIX 4.3.3 (which is also on a private network, and requires a VPN to connect to). In the datawindow designer, I have also had to change the database interface from O90 Oracle 9i to an ODBC datasource (because I was not able to connect). In doing so, I have had to graphically re-create all the DW SQL again because I get this error: Table "XYZ" has no columns, possible invalid table format. Do you want to continue in graphic mode? If I select "NO", the SQL is...

Datawindow SQL Painter crashes sometimes when opening the SQL in PB 9
I have datawindows that open fine in PB 8 and when I open the SQL in PB 9, Powerbuilder crashes. It has happened with several windows in an application that I migrated to Powerbuilder 9. These datawindows seem to work fine in the executable application but I can't open the SQL. I can't see any common thread in them. None of them are trying to open in graphics view. What database? On Fri, 30 May 2003 18:06:01 -0400, in powersoft.public.powerbuilder.datawindow <jmoen> wrote: >I have datawindows that open fine in PB 8 and when I open the SQL in PB 9, &...

DataWindows and datawindow objects
Difference between Datawindow and datawindowobjects? - datawindow is a control on a userobject or a window - datawindowobject (DWObject) is a control within a datawindow, defined in the dataobject of the datawindow. You refer to it as <datawindow-instance>.Object.<datawindow object> HTH, Ben (bede) <Santhoshi> wrote in message news:3f8bee8b.4631.846930886@sybase.com... > Difference between Datawindow and datawindowobjects? Not exactly; DW Control is a "container" that reserves real-estate on the surface of a visual object. DW Obj...

datawindow
Add direct setting and getting capability for the datawindow where clause. This would have to be a string array in case of unions. Return ONLY the where clause(s) in the main select (in case of sub-selects, ignore the where clause or somehow list it as a subselect in the where or a subselect in the select). It would be great if I could just get and set this as a value and have the datawindow automatically change (or add) the where clause as specified. This is for setting the where clause dynamically at run time. Currently have to parse through the datawindow.table.select looking f...

Web resources about - Datawindow performance disparity - runtime vs Interactive SQL and DW painter - sybase.powerbuilder.datawindow

Performance - Wikipedia, the free encyclopedia
A performance , in performing arts , generally comprises an event in which a performer or group of performers behave in a particular way for ...

The Qualcomm Snapdragon 820 Performance Preview: Meet Kryo
... first press demonstration of the SoC , showcasing early demonstrations in action and going into more detail than ever before on their performance ...

Best of Android 2015: Performance
... phone to buy and we’re taking the guesswork out of that question. For this installment in Best of Android 2015, we’re taking a look at performance: ...

Citroen racing guru heads up DS Performance racing division
Filed under: Green , Hirings/Firings/Layoffs , Motorsports , Citroen To head up its Formula E program with Virgin Racing, Citroen has dispatched ...

Climate Change Performance Index Good News For EU, Bad News For Australia And Japan
The latest Climate Change Performance Index has been released, and while the European Union can stand relatively tall, Australia, Japan, and ...

The S&P 500 has a big performance issue
The S&P 500 are concentrated in a handful of its largest stocks, an alarming trend not seen since the dot-com bust.

Compal enjoys notebook shipment growth in November; expects flat performance in December
Compal Electronics shipped 3.3 million notebooks in November, up from three million units in October, and it expects its December shipments to ...

PINE A64 is a $15, 'high-performance' take on the Raspberry Pi
Thanks to boards like the Raspberry Pi, DIY computing projects are no longer reserved for enthusiasts who can afford to sink hundreds of dollars ...

Ouch! Demi Lovato Takes a Tumble During iHeartRadio Jingle Ball Performance
Ouch! Demi Lovato Takes a Tumble During iHeartRadio Jingle Ball Performance

App Performance Is Key to Business Performance: Riverbed Survey
Application performance continues to be important, but the rapidly changing nature of business and technology poses new challenges.

Resources last updated: 12/13/2015 8:19:24 PM