Sybase NNTP forums - End Of Life (EOL)

The NNTP forums from Sybase - forums.sybase.com - are now closed.

All new questions should be directed to the appropriate forum at the SAP Community Network (SCN).

Individual products have links to the respective forums on SCN, or you can go to SCN and search for your product in the search box (upper right corner) to find your specific developer center.

Insertion of Datawindow Rows Slowdown

39 posts in DataWindow Last posting was on 2008-05-17 18:29:34.0Z
Glenn Barber Posted on 2008-03-27 16:40:09.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
Subject: Insertion of Datawindow Rows Slowdown
Lines: 17
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebcde9$1@forums-1-dub>
Date: 27 Mar 2008 08:40:09 -0800
X-Trace: forums-1-dub 1206636009 10.22.241.152 (27 Mar 2008 08:40:09 -0800)
X-Original-Trace: 27 Mar 2008 08:40:09 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86527
Article PK: 415783

We have an application which builds a grid datawindow report with about 30
columns - most of the columns have complex expressions which control the
color of the individual columns based on data in the rows.

The problem we are having is that once the insertion process creates a
thousand or so rows the insertion gets slower and slower and slower -
sometimes taking a half hour or more to add 10 thousand rows. The process
is created by a simple loop and only initially inserting values in two
columns during the initialization phase - so I know it is not getting lost
somewhere.

Does anyone have any experience with this and what might be done to build a
large collection of such rows quickly?

Thanks


Glenn Barber Posted on 2008-03-27 16:43:16.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 24
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebcea4$1@forums-1-dub>
Date: 27 Mar 2008 08:43:16 -0800
X-Trace: forums-1-dub 1206636196 10.22.241.152 (27 Mar 2008 08:43:16 -0800)
X-Original-Trace: 27 Mar 2008 08:43:16 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86528
Article PK: 415786

Just to add - we are on 10.5.2

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebcde9$1@forums-1-dub...
> We have an application which builds a grid datawindow report with about 30
> columns - most of the columns have complex expressions which control the
> color of the individual columns based on data in the rows.
>
> The problem we are having is that once the insertion process creates a
> thousand or so rows the insertion gets slower and slower and slower -
> sometimes taking a half hour or more to add 10 thousand rows. The process
> is created by a simple loop and only initially inserting values in two
> columns during the initialization phase - so I know it is not getting lost
> somewhere.
>
> Does anyone have any experience with this and what might be done to build
a
> large collection of such rows quickly?
>
> Thanks
>
>


"Jerry Siegel [TeamSybase]" <jNOsSPAMsiegel Posted on 2008-03-27 17:10:30.0Z
From: "Jerry Siegel [TeamSybase]" <jNOsSPAMsiegel@yahoo!.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 25
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebd506@forums-1-dub>
Date: 27 Mar 2008 09:10:30 -0800
X-Trace: forums-1-dub 1206637830 10.22.241.152 (27 Mar 2008 09:10:30 -0800)
X-Original-Trace: 27 Mar 2008 09:10:30 -0800, vip152.sybase.com
X-Authenticated-User: TeamSybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86531
Article PK: 415787

Just a hunch - it could be repainting. Try SetRedraw (FALSE) before you
start inserting and (TRUE) after you're done.

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebcde9$1@forums-1-dub...
> We have an application which builds a grid datawindow report with about 30
> columns - most of the columns have complex expressions which control the
> color of the individual columns based on data in the rows.
>
> The problem we are having is that once the insertion process creates a
> thousand or so rows the insertion gets slower and slower and slower -
> sometimes taking a half hour or more to add 10 thousand rows. The process
> is created by a simple loop and only initially inserting values in two
> columns during the initialization phase - so I know it is not getting lost
> somewhere.
>
> Does anyone have any experience with this and what might be done to build
> a
> large collection of such rows quickly?
>
> Thanks
>
>


Dean Jones Posted on 2008-03-27 17:08:12.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 44
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebd47c$1@forums-1-dub>
Date: 27 Mar 2008 09:08:12 -0800
X-Trace: forums-1-dub 1206637692 10.22.241.152 (27 Mar 2008 09:08:12 -0800)
X-Original-Trace: 27 Mar 2008 09:08:12 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86530
Article PK: 415788

are you setting redraw to false? Also it will be much faster to insert all
the rows at once then loop through and set the data.

example

//You have zero rows

dw_1.object.id[10000] = 0

//You now have 10000 rows.

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebcde9$1@forums-1-dub...
> We have an application which builds a grid datawindow report with about 30
> columns - most of the columns have complex expressions which control the
> color of the individual columns based on data in the rows.
>
> The problem we are having is that once the insertion process creates a
> thousand or so rows the insertion gets slower and slower and slower -
> sometimes taking a half hour or more to add 10 thousand rows. The process
> is created by a simple loop and only initially inserting values in two
> columns during the initialization phase - so I know it is not getting lost
> somewhere.
>
> Does anyone have any experience with this and what might be done to build
> a
> large collection of such rows quickly?
>
> Thanks
>
>


"Jerry Siegel [TeamSybase]" <jNOsSPAMsiegel Posted on 2008-03-27 18:13:02.0Z
From: "Jerry Siegel [TeamSybase]" <jNOsSPAMsiegel@yahoo!.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 54
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebe3ae@forums-1-dub>
Date: 27 Mar 2008 10:13:02 -0800
X-Trace: forums-1-dub 1206641582 10.22.241.152 (27 Mar 2008 10:13:02 -0800)
X-Original-Trace: 27 Mar 2008 10:13:02 -0800, vip152.sybase.com
X-Authenticated-User: TeamSybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86532
Article PK: 415790

Interesting - I knew that works for arrays, but didn't know it also works
for DW buffers.

"Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
news:47ebd47c$1@forums-1-dub...
> are you setting redraw to false? Also it will be much faster to insert all
> the rows at once then loop through and set the data.
>
> example
>
> //You have zero rows
>
> dw_1.object.id[10000] = 0
>
> //You now have 10000 rows.
>
> --
> Dean Jones
> CEO
> PowerObjects
> http://www.powerobjects.com
> (612) 339-3355 Ext. 112
>
> TeamSybase
> * * Think Sybase * *
>
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47ebcde9$1@forums-1-dub...
>> We have an application which builds a grid datawindow report with about
>> 30
>> columns - most of the columns have complex expressions which control the
>> color of the individual columns based on data in the rows.
>>
>> The problem we are having is that once the insertion process creates a
>> thousand or so rows the insertion gets slower and slower and slower -
>> sometimes taking a half hour or more to add 10 thousand rows. The
>> process
>> is created by a simple loop and only initially inserting values in two
>> columns during the initialization phase - so I know it is not getting
>> lost
>> somewhere.
>>
>> Does anyone have any experience with this and what might be done to build
>> a
>> large collection of such rows quickly?
>>
>> Thanks
>>
>>
>
>


Chris Pollach Posted on 2008-03-27 18:25:40.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe3ae@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 64
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Response
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebe6a4$1@forums-1-dub>
Date: 27 Mar 2008 10:25:40 -0800
X-Trace: forums-1-dub 1206642340 10.22.241.152 (27 Mar 2008 10:25:40 -0800)
X-Original-Trace: 27 Mar 2008 10:25:40 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86533
Article PK: 415794

Yes, because the DWO forces the screen to redraw if in the insert is in the
visual area and if not, to update the scrollbar(s) to visually indicate the
length of data in the primary buffer.

"Jerry Siegel [TeamSybase]" <jNOsSPAMsiegel@yahoo!.com> wrote in message
news:47ebe3ae@forums-1-dub...
> Interesting - I knew that works for arrays, but didn't know it also works
> for DW buffers.
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47ebd47c$1@forums-1-dub...
>> are you setting redraw to false? Also it will be much faster to insert
>> all the rows at once then loop through and set the data.
>>
>> example
>>
>> //You have zero rows
>>
>> dw_1.object.id[10000] = 0
>>
>> //You now have 10000 rows.
>>
>> --
>> Dean Jones
>> CEO
>> PowerObjects
>> http://www.powerobjects.com
>> (612) 339-3355 Ext. 112
>>
>> TeamSybase
>> * * Think Sybase * *
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebcde9$1@forums-1-dub...
>>> We have an application which builds a grid datawindow report with about
>>> 30
>>> columns - most of the columns have complex expressions which control the
>>> color of the individual columns based on data in the rows.
>>>
>>> The problem we are having is that once the insertion process creates a
>>> thousand or so rows the insertion gets slower and slower and slower -
>>> sometimes taking a half hour or more to add 10 thousand rows. The
>>> process
>>> is created by a simple loop and only initially inserting values in two
>>> columns during the initialization phase - so I know it is not getting
>>> lost
>>> somewhere.
>>>
>>> Does anyone have any experience with this and what might be done to
>>> build a
>>> large collection of such rows quickly?
>>>
>>> Thanks
>>>
>>>
>>
>>
>
>


Dean Jones Posted on 2008-03-28 13:27:53.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe3ae@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 72
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf259@forums-1-dub>
Date: 28 Mar 2008 05:27:53 -0800
X-Trace: forums-1-dub 1206710873 10.22.241.152 (28 Mar 2008 05:27:53 -0800)
X-Original-Trace: 28 Mar 2008 05:27:53 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86548
Article PK: 415807

its a cool little trick I've been using with datawindows since dot notation
was introduced.

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Jerry Siegel [TeamSybase]" <jNOsSPAMsiegel@yahoo!.com> wrote in message
news:47ebe3ae@forums-1-dub...
> Interesting - I knew that works for arrays, but didn't know it also works
> for DW buffers.
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47ebd47c$1@forums-1-dub...
>> are you setting redraw to false? Also it will be much faster to insert
>> all the rows at once then loop through and set the data.
>>
>> example
>>
>> //You have zero rows
>>
>> dw_1.object.id[10000] = 0
>>
>> //You now have 10000 rows.
>>
>> --
>> Dean Jones
>> CEO
>> PowerObjects
>> http://www.powerobjects.com
>> (612) 339-3355 Ext. 112
>>
>> TeamSybase
>> * * Think Sybase * *
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebcde9$1@forums-1-dub...
>>> We have an application which builds a grid datawindow report with about
>>> 30
>>> columns - most of the columns have complex expressions which control the
>>> color of the individual columns based on data in the rows.
>>>
>>> The problem we are having is that once the insertion process creates a
>>> thousand or so rows the insertion gets slower and slower and slower -
>>> sometimes taking a half hour or more to add 10 thousand rows. The
>>> process
>>> is created by a simple loop and only initially inserting values in two
>>> columns during the initialization phase - so I know it is not getting
>>> lost
>>> somewhere.
>>>
>>> Does anyone have any experience with this and what might be done to
>>> build a
>>> large collection of such rows quickly?
>>>
>>> Thanks
>>>
>>>
>>
>>
>
>


Glenn Barber Posted on 2008-03-27 18:37:27.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 58
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebe967$1@forums-1-dub>
Date: 27 Mar 2008 10:37:27 -0800
X-Trace: forums-1-dub 1206643047 10.22.241.152 (27 Mar 2008 10:37:27 -0800)
X-Original-Trace: 27 Mar 2008 10:37:27 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86535
Article PK: 415795

I wasn't setting redraw to false bu the datawindow was hidden - being built
on a separate hidden tab and if I remember correctly I tried turning redraw
off once and it did'nt matter significantly.

I am definitely going to try the object notation - where did you find that?

"Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
news:47ebd47c$1@forums-1-dub...
> are you setting redraw to false? Also it will be much faster to insert all
> the rows at once then loop through and set the data.
>
> example
>
> //You have zero rows
>
> dw_1.object.id[10000] = 0
>
> //You now have 10000 rows.
>
> --
> Dean Jones
> CEO
> PowerObjects
> http://www.powerobjects.com
> (612) 339-3355 Ext. 112
>
> TeamSybase
> * * Think Sybase * *
>
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47ebcde9$1@forums-1-dub...
> > We have an application which builds a grid datawindow report with about
30
> > columns - most of the columns have complex expressions which control the
> > color of the individual columns based on data in the rows.
> >
> > The problem we are having is that once the insertion process creates a
> > thousand or so rows the insertion gets slower and slower and slower -
> > sometimes taking a half hour or more to add 10 thousand rows. The
process
> > is created by a simple loop and only initially inserting values in two
> > columns during the initialization phase - so I know it is not getting
lost
> > somewhere.
> >
> > Does anyone have any experience with this and what might be done to
build
> > a
> > large collection of such rows quickly?
> >
> > Thanks
> >
> >
>
>


Chris Pollach Posted on 2008-03-27 18:46:34.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 101
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebeb8a$1@forums-1-dub>
Date: 27 Mar 2008 10:46:34 -0800
X-Trace: forums-1-dub 1206643594 10.22.241.152 (27 Mar 2008 10:46:34 -0800)
X-Original-Trace: 27 Mar 2008 10:46:34 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86536
Article PK: 415796

Glenn;

1) Use a DataStore is has less overhead as it does NOT allocate any GDI
resources in the O/S. A hidden DW Control does have GDI resources right away
because you can always issue a DC.Visible = TRUE. A DS knows better as it
does not have any Visible property. :-)

2) Also, if you know the # of rows before the inert sequence ... load the
data in reverse.

For example:

Select Max ( ) .... Where ... into :ll_no;

For ll_loop = ll_no to 1
DC.InsertRow (ll_loop)
NEXT

The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
allocate "continuous" memory and the remaining InsertRow ( ) method calls
then fill up the memory space. In ascending scenario the DWO is constantly
issuing small Malloc requests to the O/S and thus the DWO buffers are
fragmented across memory boundaries.

HTH


--
Regards ... Chris
http://chrispollach.pbdjmagazine.com
,\|/,
(0 0)
-(_)-

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebe967$1@forums-1-dub...
>I wasn't setting redraw to false bu the datawindow was hidden - being built
> on a separate hidden tab and if I remember correctly I tried turning
> redraw
> off once and it did'nt matter significantly.
>
> I am definitely going to try the object notation - where did you find
> that?
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47ebd47c$1@forums-1-dub...
>> are you setting redraw to false? Also it will be much faster to insert
>> all
>> the rows at once then loop through and set the data.
>>
>> example
>>
>> //You have zero rows
>>
>> dw_1.object.id[10000] = 0
>>
>> //You now have 10000 rows.
>>
>> --
>> Dean Jones
>> CEO
>> PowerObjects
>> http://www.powerobjects.com
>> (612) 339-3355 Ext. 112
>>
>> TeamSybase
>> * * Think Sybase * *
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebcde9$1@forums-1-dub...
>> > We have an application which builds a grid datawindow report with about
> 30
>> > columns - most of the columns have complex expressions which control
>> > the
>> > color of the individual columns based on data in the rows.
>> >
>> > The problem we are having is that once the insertion process creates a
>> > thousand or so rows the insertion gets slower and slower and slower -
>> > sometimes taking a half hour or more to add 10 thousand rows. The
> process
>> > is created by a simple loop and only initially inserting values in two
>> > columns during the initialization phase - so I know it is not getting
> lost
>> > somewhere.
>> >
>> > Does anyone have any experience with this and what might be done to
> build
>> > a
>> > large collection of such rows quickly?
>> >
>> > Thanks
>> >
>> >
>>
>>
>
>


Glenn Barber Posted on 2008-03-27 19:33:48.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 116
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebf69c$1@forums-1-dub>
Date: 27 Mar 2008 11:33:48 -0800
X-Trace: forums-1-dub 1206646428 10.22.241.152 (27 Mar 2008 11:33:48 -0800)
X-Original-Trace: 27 Mar 2008 11:33:48 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86537
Article PK: 415797

Thats interesting - I always assumed that InsertRow had to be 0 or before an
existing row.

I remember when testing this that the slowdown seemed to be related to the
datawindow expressions in the attributes. Without them it was much faster.

"Chris Pollach" <cpollach@travel-net.com> wrote in message
news:47ebeb8a$1@forums-1-dub...
> Glenn;
>
> 1) Use a DataStore is has less overhead as it does NOT allocate any GDI
> resources in the O/S. A hidden DW Control does have GDI resources right
away
> because you can always issue a DC.Visible = TRUE. A DS knows better as it
> does not have any Visible property. :-)
>
> 2) Also, if you know the # of rows before the inert sequence ... load the
> data in reverse.
>
> For example:
>
> Select Max ( ) .... Where ... into :ll_no;
>
> For ll_loop = ll_no to 1
> DC.InsertRow (ll_loop)
> NEXT
>
> The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
> allocate "continuous" memory and the remaining InsertRow ( ) method calls
> then fill up the memory space. In ascending scenario the DWO is constantly
> issuing small Malloc requests to the O/S and thus the DWO buffers are
> fragmented across memory boundaries.
>
> HTH
>
>
> --
> Regards ... Chris
> http://chrispollach.pbdjmagazine.com
> ,\|/,
> (0 0)
> -(_)-
>
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47ebe967$1@forums-1-dub...
> >I wasn't setting redraw to false bu the datawindow was hidden - being
built
> > on a separate hidden tab and if I remember correctly I tried turning
> > redraw
> > off once and it did'nt matter significantly.
> >
> > I am definitely going to try the object notation - where did you find
> > that?
> >
> > "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> > news:47ebd47c$1@forums-1-dub...
> >> are you setting redraw to false? Also it will be much faster to insert
> >> all
> >> the rows at once then loop through and set the data.
> >>
> >> example
> >>
> >> //You have zero rows
> >>
> >> dw_1.object.id[10000] = 0
> >>
> >> //You now have 10000 rows.
> >>
> >> --
> >> Dean Jones
> >> CEO
> >> PowerObjects
> >> http://www.powerobjects.com
> >> (612) 339-3355 Ext. 112
> >>
> >> TeamSybase
> >> * * Think Sybase * *
> >>
> >>
> >> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> >> news:47ebcde9$1@forums-1-dub...
> >> > We have an application which builds a grid datawindow report with
about
> > 30
> >> > columns - most of the columns have complex expressions which control
> >> > the
> >> > color of the individual columns based on data in the rows.
> >> >
> >> > The problem we are having is that once the insertion process creates
a
> >> > thousand or so rows the insertion gets slower and slower and slower -
> >> > sometimes taking a half hour or more to add 10 thousand rows. The
> > process
> >> > is created by a simple loop and only initially inserting values in
two
> >> > columns during the initialization phase - so I know it is not getting
> > lost
> >> > somewhere.
> >> >
> >> > Does anyone have any experience with this and what might be done to
> > build
> >> > a
> >> > large collection of such rows quickly?
> >> >
> >> > Thanks
> >> >
> >> >
> >>
> >>
> >
> >
>
>


Dean Jones Posted on 2008-03-28 13:36:09.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <47ebf69c$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 140
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf449$1@forums-1-dub>
Date: 28 Mar 2008 05:36:09 -0800
X-Trace: forums-1-dub 1206711369 10.22.241.152 (28 Mar 2008 05:36:09 -0800)
X-Original-Trace: 28 Mar 2008 05:36:09 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86552
Article PK: 415812

chris is wrong


--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebf69c$1@forums-1-dub...
> Thats interesting - I always assumed that InsertRow had to be 0 or before
> an
> existing row.
>
> I remember when testing this that the slowdown seemed to be related to the
> datawindow expressions in the attributes. Without them it was much
> faster.
>
> "Chris Pollach" <cpollach@travel-net.com> wrote in message
> news:47ebeb8a$1@forums-1-dub...
>> Glenn;
>>
>> 1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>> resources in the O/S. A hidden DW Control does have GDI resources right
> away
>> because you can always issue a DC.Visible = TRUE. A DS knows better as it
>> does not have any Visible property. :-)
>>
>> 2) Also, if you know the # of rows before the inert sequence ... load
>> the
>> data in reverse.
>>
>> For example:
>>
>> Select Max ( ) .... Where ... into :ll_no;
>>
>> For ll_loop = ll_no to 1
>> DC.InsertRow (ll_loop)
>> NEXT
>>
>> The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>> allocate "continuous" memory and the remaining InsertRow ( ) method calls
>> then fill up the memory space. In ascending scenario the DWO is
>> constantly
>> issuing small Malloc requests to the O/S and thus the DWO buffers are
>> fragmented across memory boundaries.
>>
>> HTH
>>
>>
>> --
>> Regards ... Chris
>> http://chrispollach.pbdjmagazine.com
>> ,\|/,
>> (0 0)
>> -(_)-
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebe967$1@forums-1-dub...
>> >I wasn't setting redraw to false bu the datawindow was hidden - being
> built
>> > on a separate hidden tab and if I remember correctly I tried turning
>> > redraw
>> > off once and it did'nt matter significantly.
>> >
>> > I am definitely going to try the object notation - where did you find
>> > that?
>> >
>> > "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
>> > news:47ebd47c$1@forums-1-dub...
>> >> are you setting redraw to false? Also it will be much faster to insert
>> >> all
>> >> the rows at once then loop through and set the data.
>> >>
>> >> example
>> >>
>> >> //You have zero rows
>> >>
>> >> dw_1.object.id[10000] = 0
>> >>
>> >> //You now have 10000 rows.
>> >>
>> >> --
>> >> Dean Jones
>> >> CEO
>> >> PowerObjects
>> >> http://www.powerobjects.com
>> >> (612) 339-3355 Ext. 112
>> >>
>> >> TeamSybase
>> >> * * Think Sybase * *
>> >>
>> >>
>> >> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> >> news:47ebcde9$1@forums-1-dub...
>> >> > We have an application which builds a grid datawindow report with
> about
>> > 30
>> >> > columns - most of the columns have complex expressions which control
>> >> > the
>> >> > color of the individual columns based on data in the rows.
>> >> >
>> >> > The problem we are having is that once the insertion process creates
> a
>> >> > thousand or so rows the insertion gets slower and slower and
>> >> > slower -
>> >> > sometimes taking a half hour or more to add 10 thousand rows. The
>> > process
>> >> > is created by a simple loop and only initially inserting values in
> two
>> >> > columns during the initialization phase - so I know it is not
>> >> > getting
>> > lost
>> >> > somewhere.
>> >> >
>> >> > Does anyone have any experience with this and what might be done to
>> > build
>> >> > a
>> >> > large collection of such rows quickly?
>> >> >
>> >> > Thanks
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>


Jim O'Neil [Sybase] Posted on 2008-03-27 21:50:40.0Z
From: "Jim O'Neil [Sybase]" <joneil@sybase.com>
Newsgroups: sybase.public.powerbuilder.datawindow
Subject: Re: Insertion of Datawindow Rows Slowdown
Message-ID: <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com>
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub>
X-Newsreader: Forte Agent 4.2/32.1118
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Date: 27 Mar 2008 13:50:40 -0800
X-Trace: forums-1-dub 1206654640 10.22.241.152 (27 Mar 2008 13:50:40 -0800)
X-Original-Trace: 27 Mar 2008 13:50:40 -0800, vip152.sybase.com
Lines: 44
X-Authenticated-User: TeamSybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86542
Article PK: 415801

#1 is actually not true, you'd think so, but that's not the case.
There is a PB.INI switch to create a 'handle-less' datastore and not
use the GDI resources though. That switch is 'true' by default when
PB components are running in EAServer, but false by default in PB C/S.

[datastore behavior]
usehwnd=no

It is NOT recommended to set this in C/S though because there are
certain constructs (RichText DW, for instance) that do require the
window handle.

You don't save many resources though... GDI usage is not dependent on
number of DW rows, it's more dependent on number of columns,
specfically the number of columns with different edit styles.

On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"

<cpollach@travel-net.com> wrote:

>Glenn;
>
>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>resources in the O/S. A hidden DW Control does have GDI resources right away
>because you can always issue a DC.Visible = TRUE. A DS knows better as it
>does not have any Visible property. :-)
>
>2) Also, if you know the # of rows before the inert sequence ... load the
>data in reverse.
>
>For example:
>
>Select Max ( ) .... Where ... into :ll_no;
>
>For ll_loop = ll_no to 1
> DC.InsertRow (ll_loop)
>NEXT
>
>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>allocate "continuous" memory and the remaining InsertRow ( ) method calls
>then fill up the memory space. In ascending scenario the DWO is constantly
>issuing small Malloc requests to the O/S and thus the DWO buffers are
>fragmented across memory boundaries.
>
>HTH


Chris Pollach Posted on 2008-03-28 11:25:32.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 57
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecd5ac@forums-1-dub>
Date: 28 Mar 2008 03:25:32 -0800
X-Trace: forums-1-dub 1206703532 10.22.241.152 (28 Mar 2008 03:25:32 -0800)
X-Original-Trace: 28 Mar 2008 03:25:32 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86546
Article PK: 415806

Wow ... Cool tip! Thanks for the internals lesson Jim - I learned something
new today. :-)

I wonder if that restriction holds true for C# (a la PB 11 Winform)?

"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
> #1 is actually not true, you'd think so, but that's not the case.
> There is a PB.INI switch to create a 'handle-less' datastore and not
> use the GDI resources though. That switch is 'true' by default when
> PB components are running in EAServer, but false by default in PB C/S.
>
> [datastore behavior]
> usehwnd=no
>
> It is NOT recommended to set this in C/S though because there are
> certain constructs (RichText DW, for instance) that do require the
> window handle.
>
> You don't save many resources though... GDI usage is not dependent on
> number of DW rows, it's more dependent on number of columns,
> specfically the number of columns with different edit styles.
>
> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
> <cpollach@travel-net.com> wrote:
>
>>Glenn;
>>
>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>resources in the O/S. A hidden DW Control does have GDI resources right
>>away
>>because you can always issue a DC.Visible = TRUE. A DS knows better as it
>>does not have any Visible property. :-)
>>
>>2) Also, if you know the # of rows before the inert sequence ... load the
>>data in reverse.
>>
>>For example:
>>
>>Select Max ( ) .... Where ... into :ll_no;
>>
>>For ll_loop = ll_no to 1
>> DC.InsertRow (ll_loop)
>>NEXT
>>
>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>>allocate "continuous" memory and the remaining InsertRow ( ) method calls
>>then fill up the memory space. In ascending scenario the DWO is constantly
>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>fragmented across memory boundaries.
>>
>>HTH


Jim O'Neil [Sybase] Posted on 2008-03-28 13:34:25.0Z
From: "Jim O'Neil [Sybase]" <joneil@sybase.com>
Newsgroups: sybase.public.powerbuilder.datawindow
Subject: Re: Insertion of Datawindow Rows Slowdown
Message-ID: <9uspu31dsv1d69g7p7kbivkieen8l9hp8b@4ax.com>
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd5ac@forums-1-dub>
X-Newsreader: Forte Agent 4.2/32.1118
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Date: 28 Mar 2008 05:34:25 -0800
X-Trace: forums-1-dub 1206711265 10.22.241.152 (28 Mar 2008 05:34:25 -0800)
X-Original-Trace: 28 Mar 2008 05:34:25 -0800, vip152.sybase.com
Lines: 62
X-Authenticated-User: TeamSybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86551
Article PK: 415811

Since WinForm uses the same DW engine (unmanaged code) then yes it
holds true.

On 28 Mar 2008 03:25:32 -0800, "Chris Pollach"

<cpollach@travel-net.com> wrote:

>
> Wow ... Cool tip! Thanks for the internals lesson Jim - I learned something
>new today. :-)
>
>I wonder if that restriction holds true for C# (a la PB 11 Winform)?
>
>
>
>"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>> #1 is actually not true, you'd think so, but that's not the case.
>> There is a PB.INI switch to create a 'handle-less' datastore and not
>> use the GDI resources though. That switch is 'true' by default when
>> PB components are running in EAServer, but false by default in PB C/S.
>>
>> [datastore behavior]
>> usehwnd=no
>>
>> It is NOT recommended to set this in C/S though because there are
>> certain constructs (RichText DW, for instance) that do require the
>> window handle.
>>
>> You don't save many resources though... GDI usage is not dependent on
>> number of DW rows, it's more dependent on number of columns,
>> specfically the number of columns with different edit styles.
>>
>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>> <cpollach@travel-net.com> wrote:
>>
>>>Glenn;
>>>
>>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>resources in the O/S. A hidden DW Control does have GDI resources right
>>>away
>>>because you can always issue a DC.Visible = TRUE. A DS knows better as it
>>>does not have any Visible property. :-)
>>>
>>>2) Also, if you know the # of rows before the inert sequence ... load the
>>>data in reverse.
>>>
>>>For example:
>>>
>>>Select Max ( ) .... Where ... into :ll_no;
>>>
>>>For ll_loop = ll_no to 1
>>> DC.InsertRow (ll_loop)
>>>NEXT
>>>
>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>>>allocate "continuous" memory and the remaining InsertRow ( ) method calls
>>>then fill up the memory space. In ascending scenario the DWO is constantly
>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>fragmented across memory boundaries.
>>>
>>>HTH
>


Chris Pollach Posted on 2008-03-28 13:36:41.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd5ac@forums-1-dub> <9uspu31dsv1d69g7p7kbivkieen8l9hp8b@4ax.com>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 77
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf469$1@forums-1-dub>
Date: 28 Mar 2008 05:36:41 -0800
X-Trace: forums-1-dub 1206711401 10.22.241.152 (28 Mar 2008 05:36:41 -0800)
X-Original-Trace: 28 Mar 2008 05:36:41 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86553
Article PK: 415813

But what about the new Managed Code version for PB 12? That is what I was
thinking of.

"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
news:9uspu31dsv1d69g7p7kbivkieen8l9hp8b@4ax.com...
> Since WinForm uses the same DW engine (unmanaged code) then yes it
> holds true.
>
> On 28 Mar 2008 03:25:32 -0800, "Chris Pollach"
> <cpollach@travel-net.com> wrote:
>
>>
>> Wow ... Cool tip! Thanks for the internals lesson Jim - I learned
>> something
>>new today. :-)
>>
>>I wonder if that restriction holds true for C# (a la PB 11 Winform)?
>>
>>
>>
>>"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>>news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>>> #1 is actually not true, you'd think so, but that's not the case.
>>> There is a PB.INI switch to create a 'handle-less' datastore and not
>>> use the GDI resources though. That switch is 'true' by default when
>>> PB components are running in EAServer, but false by default in PB C/S.
>>>
>>> [datastore behavior]
>>> usehwnd=no
>>>
>>> It is NOT recommended to set this in C/S though because there are
>>> certain constructs (RichText DW, for instance) that do require the
>>> window handle.
>>>
>>> You don't save many resources though... GDI usage is not dependent on
>>> number of DW rows, it's more dependent on number of columns,
>>> specfically the number of columns with different edit styles.
>>>
>>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>>> <cpollach@travel-net.com> wrote:
>>>
>>>>Glenn;
>>>>
>>>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>>resources in the O/S. A hidden DW Control does have GDI resources right
>>>>away
>>>>because you can always issue a DC.Visible = TRUE. A DS knows better as
>>>>it
>>>>does not have any Visible property. :-)
>>>>
>>>>2) Also, if you know the # of rows before the inert sequence ... load
>>>>the
>>>>data in reverse.
>>>>
>>>>For example:
>>>>
>>>>Select Max ( ) .... Where ... into :ll_no;
>>>>
>>>>For ll_loop = ll_no to 1
>>>> DC.InsertRow (ll_loop)
>>>>NEXT
>>>>
>>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO
>>>>to
>>>>allocate "continuous" memory and the remaining InsertRow ( ) method
>>>>calls
>>>>then fill up the memory space. In ascending scenario the DWO is
>>>>constantly
>>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>>fragmented across memory boundaries.
>>>>
>>>>HTH
>>


Jim O'Neil [Sybase] Posted on 2008-03-28 18:08:16.0Z
From: "Jim O'Neil [Sybase]" <joneil@sybase.com>
Newsgroups: sybase.public.powerbuilder.datawindow
Subject: Re: Insertion of Datawindow Rows Slowdown
Message-ID: <9scqu39p2q806a7pqjccji5pogi75rcmgg@4ax.com>
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd5ac@forums-1-dub> <9uspu31dsv1d69g7p7kbivkieen8l9hp8b@4ax.com> <47ecf469$1@forums-1-dub>
X-Newsreader: Forte Agent 4.2/32.1118
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Date: 28 Mar 2008 10:08:16 -0800
X-Trace: forums-1-dub 1206727696 10.22.241.152 (28 Mar 2008 10:08:16 -0800)
X-Original-Trace: 28 Mar 2008 10:08:16 -0800, vip152.sybase.com
Lines: 89
X-Authenticated-User: TeamSybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86566
Article PK: 415827

>I wonder if that restriction holds true for C# (a la PB 11 Winform)?
doesn't quite imply PB12 <g>... given that WPF doesn't use GDI, then
that specifically won't exist, but I'm not sure what specific
differences the DS will have from the DW in this regard. It's an
opportunity for engineering to 'tune' it though.

WinForm/WebForm in PB12 would continue to use the unmanaged code DW at
at point in time. The PB12 WPF target would use the managed code one.


On 28 Mar 2008 05:36:41 -0800, "Chris Pollach"

<cpollach@travel-net.com> wrote:

>
> But what about the new Managed Code version for PB 12? That is what I was
>thinking of.
>
>
>"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>news:9uspu31dsv1d69g7p7kbivkieen8l9hp8b@4ax.com...
>> Since WinForm uses the same DW engine (unmanaged code) then yes it
>> holds true.
>>
>> On 28 Mar 2008 03:25:32 -0800, "Chris Pollach"
>> <cpollach@travel-net.com> wrote:
>>
>>>
>>> Wow ... Cool tip! Thanks for the internals lesson Jim - I learned
>>> something
>>>new today. :-)
>>>
>>>I wonder if that restriction holds true for C# (a la PB 11 Winform)?
>>>
>>>
>>>
>>>"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>>>news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>>>> #1 is actually not true, you'd think so, but that's not the case.
>>>> There is a PB.INI switch to create a 'handle-less' datastore and not
>>>> use the GDI resources though. That switch is 'true' by default when
>>>> PB components are running in EAServer, but false by default in PB C/S.
>>>>
>>>> [datastore behavior]
>>>> usehwnd=no
>>>>
>>>> It is NOT recommended to set this in C/S though because there are
>>>> certain constructs (RichText DW, for instance) that do require the
>>>> window handle.
>>>>
>>>> You don't save many resources though... GDI usage is not dependent on
>>>> number of DW rows, it's more dependent on number of columns,
>>>> specfically the number of columns with different edit styles.
>>>>
>>>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>>>> <cpollach@travel-net.com> wrote:
>>>>
>>>>>Glenn;
>>>>>
>>>>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>>>resources in the O/S. A hidden DW Control does have GDI resources right
>>>>>away
>>>>>because you can always issue a DC.Visible = TRUE. A DS knows better as
>>>>>it
>>>>>does not have any Visible property. :-)
>>>>>
>>>>>2) Also, if you know the # of rows before the inert sequence ... load
>>>>>the
>>>>>data in reverse.
>>>>>
>>>>>For example:
>>>>>
>>>>>Select Max ( ) .... Where ... into :ll_no;
>>>>>
>>>>>For ll_loop = ll_no to 1
>>>>> DC.InsertRow (ll_loop)
>>>>>NEXT
>>>>>
>>>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO
>>>>>to
>>>>>allocate "continuous" memory and the remaining InsertRow ( ) method
>>>>>calls
>>>>>then fill up the memory space. In ascending scenario the DWO is
>>>>>constantly
>>>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>>>fragmented across memory boundaries.
>>>>>
>>>>>HTH
>>>
>


Chris Pollach Posted on 2008-03-28 18:23:23.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd5ac@forums-1-dub> <9uspu31dsv1d69g7p7kbivkieen8l9hp8b@4ax.com> <47ecf469$1@forums-1-dub> <9scqu39p2q806a7pqjccji5pogi75rcmgg@4ax.com>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 100
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ed379b@forums-1-dub>
Date: 28 Mar 2008 10:23:23 -0800
X-Trace: forums-1-dub 1206728603 10.22.241.152 (28 Mar 2008 10:23:23 -0800)
X-Original-Trace: 28 Mar 2008 10:23:23 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86567
Article PK: 415826

Correct .. its the WPF then that I was thinking of.

"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
news:9scqu39p2q806a7pqjccji5pogi75rcmgg@4ax.com...
> >I wonder if that restriction holds true for C# (a la PB 11 Winform)?
> doesn't quite imply PB12 <g>... given that WPF doesn't use GDI, then
> that specifically won't exist, but I'm not sure what specific
> differences the DS will have from the DW in this regard. It's an
> opportunity for engineering to 'tune' it though.
>
> WinForm/WebForm in PB12 would continue to use the unmanaged code DW at
> at point in time. The PB12 WPF target would use the managed code one.
>
>
> On 28 Mar 2008 05:36:41 -0800, "Chris Pollach"
> <cpollach@travel-net.com> wrote:
>
>>
>> But what about the new Managed Code version for PB 12? That is what I was
>>thinking of.
>>
>>
>>"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>>news:9uspu31dsv1d69g7p7kbivkieen8l9hp8b@4ax.com...
>>> Since WinForm uses the same DW engine (unmanaged code) then yes it
>>> holds true.
>>>
>>> On 28 Mar 2008 03:25:32 -0800, "Chris Pollach"
>>> <cpollach@travel-net.com> wrote:
>>>
>>>>
>>>> Wow ... Cool tip! Thanks for the internals lesson Jim - I learned
>>>> something
>>>>new today. :-)
>>>>
>>>>I wonder if that restriction holds true for C# (a la PB 11 Winform)?
>>>>
>>>>
>>>>
>>>>"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>>>>news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>>>>> #1 is actually not true, you'd think so, but that's not the case.
>>>>> There is a PB.INI switch to create a 'handle-less' datastore and not
>>>>> use the GDI resources though. That switch is 'true' by default when
>>>>> PB components are running in EAServer, but false by default in PB C/S.
>>>>>
>>>>> [datastore behavior]
>>>>> usehwnd=no
>>>>>
>>>>> It is NOT recommended to set this in C/S though because there are
>>>>> certain constructs (RichText DW, for instance) that do require the
>>>>> window handle.
>>>>>
>>>>> You don't save many resources though... GDI usage is not dependent on
>>>>> number of DW rows, it's more dependent on number of columns,
>>>>> specfically the number of columns with different edit styles.
>>>>>
>>>>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>>>>> <cpollach@travel-net.com> wrote:
>>>>>
>>>>>>Glenn;
>>>>>>
>>>>>>1) Use a DataStore is has less overhead as it does NOT allocate any
>>>>>>GDI
>>>>>>resources in the O/S. A hidden DW Control does have GDI resources
>>>>>>right
>>>>>>away
>>>>>>because you can always issue a DC.Visible = TRUE. A DS knows better as
>>>>>>it
>>>>>>does not have any Visible property. :-)
>>>>>>
>>>>>>2) Also, if you know the # of rows before the inert sequence ... load
>>>>>>the
>>>>>>data in reverse.
>>>>>>
>>>>>>For example:
>>>>>>
>>>>>>Select Max ( ) .... Where ... into :ll_no;
>>>>>>
>>>>>>For ll_loop = ll_no to 1
>>>>>> DC.InsertRow (ll_loop)
>>>>>>NEXT
>>>>>>
>>>>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO
>>>>>>to
>>>>>>allocate "continuous" memory and the remaining InsertRow ( ) method
>>>>>>calls
>>>>>>then fill up the memory space. In ascending scenario the DWO is
>>>>>>constantly
>>>>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>>>>fragmented across memory boundaries.
>>>>>>
>>>>>>HTH
>>>>
>>


Dean Jones Posted on 2008-03-28 13:42:29.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd5ac@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 76
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf5c5@forums-1-dub>
Date: 28 Mar 2008 05:42:29 -0800
X-Trace: forums-1-dub 1206711749 10.22.241.152 (28 Mar 2008 05:42:29 -0800)
X-Original-Trace: 28 Mar 2008 05:42:29 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86555
Article PK: 415817

I liked the tip of insertrows in reverse starting with max row ... <g>

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Chris Pollach" <cpollach@travel-net.com> wrote in message
news:47ecd5ac@forums-1-dub...
>
> Wow ... Cool tip! Thanks for the internals lesson Jim - I learned
> something new today. :-)
>
> I wonder if that restriction holds true for C# (a la PB 11 Winform)?
>
>
>
> "Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
> news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>> #1 is actually not true, you'd think so, but that's not the case.
>> There is a PB.INI switch to create a 'handle-less' datastore and not
>> use the GDI resources though. That switch is 'true' by default when
>> PB components are running in EAServer, but false by default in PB C/S.
>>
>> [datastore behavior]
>> usehwnd=no
>>
>> It is NOT recommended to set this in C/S though because there are
>> certain constructs (RichText DW, for instance) that do require the
>> window handle.
>>
>> You don't save many resources though... GDI usage is not dependent on
>> number of DW rows, it's more dependent on number of columns,
>> specfically the number of columns with different edit styles.
>>
>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>> <cpollach@travel-net.com> wrote:
>>
>>>Glenn;
>>>
>>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>resources in the O/S. A hidden DW Control does have GDI resources right
>>>away
>>>because you can always issue a DC.Visible = TRUE. A DS knows better as it
>>>does not have any Visible property. :-)
>>>
>>>2) Also, if you know the # of rows before the inert sequence ... load
>>>the
>>>data in reverse.
>>>
>>>For example:
>>>
>>>Select Max ( ) .... Where ... into :ll_no;
>>>
>>>For ll_loop = ll_no to 1
>>> DC.InsertRow (ll_loop)
>>>NEXT
>>>
>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>>>allocate "continuous" memory and the remaining InsertRow ( ) method calls
>>>then fill up the memory space. In ascending scenario the DWO is
>>>constantly
>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>fragmented across memory boundaries.
>>>
>>>HTH
>
>


Chris Pollach Posted on 2008-03-28 11:30:01.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 65
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecd6b9$1@forums-1-dub>
Date: 28 Mar 2008 03:30:01 -0800
X-Trace: forums-1-dub 1206703801 10.22.241.152 (28 Mar 2008 03:30:01 -0800)
X-Original-Trace: 28 Mar 2008 03:30:01 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86547
Article PK: 415808

Jim;

I agree about the #columns and expressions. I have already asked Glenn if
he used expressions.

I assume that the DW Over-Head is still 4 bytes per row and 4 bytes per
column too to maintain the data change flags.

--
Regards ... Chris
http://chrispollach.pbdjmagazine.com
,\|/,
(0 0)
-(_)-

"Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
> #1 is actually not true, you'd think so, but that's not the case.
> There is a PB.INI switch to create a 'handle-less' datastore and not
> use the GDI resources though. That switch is 'true' by default when
> PB components are running in EAServer, but false by default in PB C/S.
>
> [datastore behavior]
> usehwnd=no
>
> It is NOT recommended to set this in C/S though because there are
> certain constructs (RichText DW, for instance) that do require the
> window handle.
>
> You don't save many resources though... GDI usage is not dependent on
> number of DW rows, it's more dependent on number of columns,
> specfically the number of columns with different edit styles.
>
> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
> <cpollach@travel-net.com> wrote:
>
>>Glenn;
>>
>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>resources in the O/S. A hidden DW Control does have GDI resources right
>>away
>>because you can always issue a DC.Visible = TRUE. A DS knows better as it
>>does not have any Visible property. :-)
>>
>>2) Also, if you know the # of rows before the inert sequence ... load the
>>data in reverse.
>>
>>For example:
>>
>>Select Max ( ) .... Where ... into :ll_no;
>>
>>For ll_loop = ll_no to 1
>> DC.InsertRow (ll_loop)
>>NEXT
>>
>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>>allocate "continuous" memory and the remaining InsertRow ( ) method calls
>>then fill up the memory space. In ascending scenario the DWO is constantly
>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>fragmented across memory boundaries.
>>
>>HTH


Dean Jones Posted on 2008-03-28 13:50:21.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd6b9$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 86
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf79d$1@forums-1-dub>
Date: 28 Mar 2008 05:50:21 -0800
X-Trace: forums-1-dub 1206712221 10.22.241.152 (28 Mar 2008 05:50:21 -0800)
X-Original-Trace: 28 Mar 2008 05:50:21 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86556
Article PK: 415815

Wow - 4 bytes, that sounds really technical and very knowledgeable. How many
of those bits-and-bytes do we save by insertrow( maxrow ) upfront and
filling in reverse?

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Chris Pollach" <cpollach@travel-net.com> wrote in message
news:47ecd6b9$1@forums-1-dub...
> Jim;
>
> I agree about the #columns and expressions. I have already asked Glenn if
> he used expressions.
>
> I assume that the DW Over-Head is still 4 bytes per row and 4 bytes per
> column too to maintain the data change flags.
>
> --
> Regards ... Chris
> http://chrispollach.pbdjmagazine.com
> ,\|/,
> (0 0)
> -(_)-
>
>
> "Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
> news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>> #1 is actually not true, you'd think so, but that's not the case.
>> There is a PB.INI switch to create a 'handle-less' datastore and not
>> use the GDI resources though. That switch is 'true' by default when
>> PB components are running in EAServer, but false by default in PB C/S.
>>
>> [datastore behavior]
>> usehwnd=no
>>
>> It is NOT recommended to set this in C/S though because there are
>> certain constructs (RichText DW, for instance) that do require the
>> window handle.
>>
>> You don't save many resources though... GDI usage is not dependent on
>> number of DW rows, it's more dependent on number of columns,
>> specfically the number of columns with different edit styles.
>>
>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>> <cpollach@travel-net.com> wrote:
>>
>>>Glenn;
>>>
>>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>resources in the O/S. A hidden DW Control does have GDI resources right
>>>away
>>>because you can always issue a DC.Visible = TRUE. A DS knows better as it
>>>does not have any Visible property. :-)
>>>
>>>2) Also, if you know the # of rows before the inert sequence ... load
>>>the
>>>data in reverse.
>>>
>>>For example:
>>>
>>>Select Max ( ) .... Where ... into :ll_no;
>>>
>>>For ll_loop = ll_no to 1
>>> DC.InsertRow (ll_loop)
>>>NEXT
>>>
>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>>>allocate "continuous" memory and the remaining InsertRow ( ) method calls
>>>then fill up the memory space. In ascending scenario the DWO is
>>>constantly
>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>fragmented across memory boundaries.
>>>
>>>HTH
>
>


Chris Pollach Posted on 2008-03-28 13:51:46.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd6b9$1@forums-1-dub> <47ecf79d$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 98
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Response
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf7f2$1@forums-1-dub>
Date: 28 Mar 2008 05:51:46 -0800
X-Trace: forums-1-dub 1206712306 10.22.241.152 (28 Mar 2008 05:51:46 -0800)
X-Original-Trace: 28 Mar 2008 05:51:46 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86557
Article PK: 415816

Ahhh ... 1/4? :-)))

"Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
news:47ecf79d$1@forums-1-dub...
> Wow - 4 bytes, that sounds really technical and very knowledgeable. How
> many of those bits-and-bytes do we save by insertrow( maxrow ) upfront and
> filling in reverse?
>
> --
> Dean Jones
> CEO
> PowerObjects
> http://www.powerobjects.com
> (612) 339-3355 Ext. 112
>
> TeamSybase
> * * Think Sybase * *
>
>
> "Chris Pollach" <cpollach@travel-net.com> wrote in message
> news:47ecd6b9$1@forums-1-dub...
>> Jim;
>>
>> I agree about the #columns and expressions. I have already asked Glenn if
>> he used expressions.
>>
>> I assume that the DW Over-Head is still 4 bytes per row and 4 bytes per
>> column too to maintain the data change flags.
>>
>> --
>> Regards ... Chris
>> http://chrispollach.pbdjmagazine.com
>> ,\|/,
>> (0 0)
>> -(_)-
>>
>>
>> "Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>> news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>>> #1 is actually not true, you'd think so, but that's not the case.
>>> There is a PB.INI switch to create a 'handle-less' datastore and not
>>> use the GDI resources though. That switch is 'true' by default when
>>> PB components are running in EAServer, but false by default in PB C/S.
>>>
>>> [datastore behavior]
>>> usehwnd=no
>>>
>>> It is NOT recommended to set this in C/S though because there are
>>> certain constructs (RichText DW, for instance) that do require the
>>> window handle.
>>>
>>> You don't save many resources though... GDI usage is not dependent on
>>> number of DW rows, it's more dependent on number of columns,
>>> specfically the number of columns with different edit styles.
>>>
>>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>>> <cpollach@travel-net.com> wrote:
>>>
>>>>Glenn;
>>>>
>>>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>>resources in the O/S. A hidden DW Control does have GDI resources right
>>>>away
>>>>because you can always issue a DC.Visible = TRUE. A DS knows better as
>>>>it
>>>>does not have any Visible property. :-)
>>>>
>>>>2) Also, if you know the # of rows before the inert sequence ... load
>>>>the
>>>>data in reverse.
>>>>
>>>>For example:
>>>>
>>>>Select Max ( ) .... Where ... into :ll_no;
>>>>
>>>>For ll_loop = ll_no to 1
>>>> DC.InsertRow (ll_loop)
>>>>NEXT
>>>>
>>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO
>>>>to
>>>>allocate "continuous" memory and the remaining InsertRow ( ) method
>>>>calls
>>>>then fill up the memory space. In ascending scenario the DWO is
>>>>constantly
>>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>>fragmented across memory boundaries.
>>>>
>>>>HTH
>>
>>
>
>


Dean Jones Posted on 2008-03-28 16:15:51.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com> <47ecd6b9$1@forums-1-dub> <47ecf79d$1@forums-1-dub> <47ecf7f2$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 115
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ed19b7$1@forums-1-dub>
Date: 28 Mar 2008 08:15:51 -0800
X-Trace: forums-1-dub 1206720951 10.22.241.152 (28 Mar 2008 08:15:51 -0800)
X-Original-Trace: 28 Mar 2008 08:15:51 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86561
Article PK: 415821

is that a bit or a byte. What OS?

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Chris Pollach" <cpollach@travel-net.com> wrote in message
news:47ecf7f2$1@forums-1-dub...
>
> Ahhh ... 1/4? :-)))
>
>
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47ecf79d$1@forums-1-dub...
>> Wow - 4 bytes, that sounds really technical and very knowledgeable. How
>> many of those bits-and-bytes do we save by insertrow( maxrow ) upfront
>> and filling in reverse?
>>
>> --
>> Dean Jones
>> CEO
>> PowerObjects
>> http://www.powerobjects.com
>> (612) 339-3355 Ext. 112
>>
>> TeamSybase
>> * * Think Sybase * *
>>
>>
>> "Chris Pollach" <cpollach@travel-net.com> wrote in message
>> news:47ecd6b9$1@forums-1-dub...
>>> Jim;
>>>
>>> I agree about the #columns and expressions. I have already asked Glenn
>>> if he used expressions.
>>>
>>> I assume that the DW Over-Head is still 4 bytes per row and 4 bytes per
>>> column too to maintain the data change flags.
>>>
>>> --
>>> Regards ... Chris
>>> http://chrispollach.pbdjmagazine.com
>>> ,\|/,
>>> (0 0)
>>> -(_)-
>>>
>>>
>>> "Jim O'Neil [Sybase]" <joneil@sybase.com> wrote in message
>>> news:oa5ou35hsmh9fmcfkvjs14ri816ioe170q@4ax.com...
>>>> #1 is actually not true, you'd think so, but that's not the case.
>>>> There is a PB.INI switch to create a 'handle-less' datastore and not
>>>> use the GDI resources though. That switch is 'true' by default when
>>>> PB components are running in EAServer, but false by default in PB C/S.
>>>>
>>>> [datastore behavior]
>>>> usehwnd=no
>>>>
>>>> It is NOT recommended to set this in C/S though because there are
>>>> certain constructs (RichText DW, for instance) that do require the
>>>> window handle.
>>>>
>>>> You don't save many resources though... GDI usage is not dependent on
>>>> number of DW rows, it's more dependent on number of columns,
>>>> specfically the number of columns with different edit styles.
>>>>
>>>> On 27 Mar 2008 10:46:34 -0800, "Chris Pollach"
>>>> <cpollach@travel-net.com> wrote:
>>>>
>>>>>Glenn;
>>>>>
>>>>>1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>>>resources in the O/S. A hidden DW Control does have GDI resources right
>>>>>away
>>>>>because you can always issue a DC.Visible = TRUE. A DS knows better as
>>>>>it
>>>>>does not have any Visible property. :-)
>>>>>
>>>>>2) Also, if you know the # of rows before the inert sequence ... load
>>>>>the
>>>>>data in reverse.
>>>>>
>>>>>For example:
>>>>>
>>>>>Select Max ( ) .... Where ... into :ll_no;
>>>>>
>>>>>For ll_loop = ll_no to 1
>>>>> DC.InsertRow (ll_loop)
>>>>>NEXT
>>>>>
>>>>>The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO
>>>>>to
>>>>>allocate "continuous" memory and the remaining InsertRow ( ) method
>>>>>calls
>>>>>then fill up the memory space. In ascending scenario the DWO is
>>>>>constantly
>>>>>issuing small Malloc requests to the O/S and thus the DWO buffers are
>>>>>fragmented across memory boundaries.
>>>>>
>>>>>HTH
>>>
>>>
>>
>>
>
>


Dean Jones Posted on 2008-03-28 13:31:01.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 126
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf315$1@forums-1-dub>
Date: 28 Mar 2008 05:31:01 -0800
X-Trace: forums-1-dub 1206711061 10.22.241.152 (28 Mar 2008 05:31:01 -0800)
X-Original-Trace: 28 Mar 2008 05:31:01 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86550
Article PK: 415810

What???

Thats not correct if you insert a large number it will not insert a row at
the end of your records.

If you have 10 rows and you insertrow( 10000 ) the next row added with be
11.

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Chris Pollach" <cpollach@travel-net.com> wrote in message
news:47ebeb8a$1@forums-1-dub...
> Glenn;
>
> 1) Use a DataStore is has less overhead as it does NOT allocate any GDI
> resources in the O/S. A hidden DW Control does have GDI resources right
> away because you can always issue a DC.Visible = TRUE. A DS knows better
> as it does not have any Visible property. :-)
>
> 2) Also, if you know the # of rows before the inert sequence ... load the
> data in reverse.
>
> For example:
>
> Select Max ( ) .... Where ... into :ll_no;
>
> For ll_loop = ll_no to 1
> DC.InsertRow (ll_loop)
> NEXT
>
> The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
> allocate "continuous" memory and the remaining InsertRow ( ) method calls
> then fill up the memory space. In ascending scenario the DWO is constantly
> issuing small Malloc requests to the O/S and thus the DWO buffers are
> fragmented across memory boundaries.
>
> HTH
>
>
> --
> Regards ... Chris
> http://chrispollach.pbdjmagazine.com
> ,\|/,
> (0 0)
> -(_)-
>
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47ebe967$1@forums-1-dub...
>>I wasn't setting redraw to false bu the datawindow was hidden - being
>>built
>> on a separate hidden tab and if I remember correctly I tried turning
>> redraw
>> off once and it did'nt matter significantly.
>>
>> I am definitely going to try the object notation - where did you find
>> that?
>>
>> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
>> news:47ebd47c$1@forums-1-dub...
>>> are you setting redraw to false? Also it will be much faster to insert
>>> all
>>> the rows at once then loop through and set the data.
>>>
>>> example
>>>
>>> //You have zero rows
>>>
>>> dw_1.object.id[10000] = 0
>>>
>>> //You now have 10000 rows.
>>>
>>> --
>>> Dean Jones
>>> CEO
>>> PowerObjects
>>> http://www.powerobjects.com
>>> (612) 339-3355 Ext. 112
>>>
>>> TeamSybase
>>> * * Think Sybase * *
>>>
>>>
>>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>>> news:47ebcde9$1@forums-1-dub...
>>> > We have an application which builds a grid datawindow report with
>>> > about
>> 30
>>> > columns - most of the columns have complex expressions which control
>>> > the
>>> > color of the individual columns based on data in the rows.
>>> >
>>> > The problem we are having is that once the insertion process creates a
>>> > thousand or so rows the insertion gets slower and slower and slower -
>>> > sometimes taking a half hour or more to add 10 thousand rows. The
>> process
>>> > is created by a simple loop and only initially inserting values in two
>>> > columns during the initialization phase - so I know it is not getting
>> lost
>>> > somewhere.
>>> >
>>> > Does anyone have any experience with this and what might be done to
>> build
>>> > a
>>> > large collection of such rows quickly?
>>> >
>>> > Thanks
>>> >
>>> >
>>>
>>>
>>
>>
>
>


Chris Pollach Posted on 2008-03-28 13:40:27.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <47ecf315$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 145
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Response
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf54b@forums-1-dub>
Date: 28 Mar 2008 05:40:27 -0800
X-Trace: forums-1-dub 1206711627 10.22.241.152 (28 Mar 2008 05:40:27 -0800)
X-Original-Trace: 28 Mar 2008 05:40:27 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86554
Article PK: 415814

Thanks Dean ... I needed a wake-up call and some coffee .... not to mention
thawing out from the cold here in Canada <LOL>.

Yes, what I have done before is load an array in reverse sequence - then use
PB's DOT notation to load from the array to the DS's buffer. Loading the
array in reverse forces contiguous memory allocation (not the DWO -
Zzzzzzz).

Thank you for keeping me honest! :-)

"Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
news:47ecf315$1@forums-1-dub...
> What???
>
> Thats not correct if you insert a large number it will not insert a row at
> the end of your records.
>
> If you have 10 rows and you insertrow( 10000 ) the next row added with be
> 11.
>
> --
> Dean Jones
> CEO
> PowerObjects
> http://www.powerobjects.com
> (612) 339-3355 Ext. 112
>
> TeamSybase
> * * Think Sybase * *
>
>
> "Chris Pollach" <cpollach@travel-net.com> wrote in message
> news:47ebeb8a$1@forums-1-dub...
>> Glenn;
>>
>> 1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>> resources in the O/S. A hidden DW Control does have GDI resources right
>> away because you can always issue a DC.Visible = TRUE. A DS knows better
>> as it does not have any Visible property. :-)
>>
>> 2) Also, if you know the # of rows before the inert sequence ... load
>> the data in reverse.
>>
>> For example:
>>
>> Select Max ( ) .... Where ... into :ll_no;
>>
>> For ll_loop = ll_no to 1
>> DC.InsertRow (ll_loop)
>> NEXT
>>
>> The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO to
>> allocate "continuous" memory and the remaining InsertRow ( ) method calls
>> then fill up the memory space. In ascending scenario the DWO is
>> constantly issuing small Malloc requests to the O/S and thus the DWO
>> buffers are fragmented across memory boundaries.
>>
>> HTH
>>
>>
>> --
>> Regards ... Chris
>> http://chrispollach.pbdjmagazine.com
>> ,\|/,
>> (0 0)
>> -(_)-
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebe967$1@forums-1-dub...
>>>I wasn't setting redraw to false bu the datawindow was hidden - being
>>>built
>>> on a separate hidden tab and if I remember correctly I tried turning
>>> redraw
>>> off once and it did'nt matter significantly.
>>>
>>> I am definitely going to try the object notation - where did you find
>>> that?
>>>
>>> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
>>> news:47ebd47c$1@forums-1-dub...
>>>> are you setting redraw to false? Also it will be much faster to insert
>>>> all
>>>> the rows at once then loop through and set the data.
>>>>
>>>> example
>>>>
>>>> //You have zero rows
>>>>
>>>> dw_1.object.id[10000] = 0
>>>>
>>>> //You now have 10000 rows.
>>>>
>>>> --
>>>> Dean Jones
>>>> CEO
>>>> PowerObjects
>>>> http://www.powerobjects.com
>>>> (612) 339-3355 Ext. 112
>>>>
>>>> TeamSybase
>>>> * * Think Sybase * *
>>>>
>>>>
>>>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>>>> news:47ebcde9$1@forums-1-dub...
>>>> > We have an application which builds a grid datawindow report with
>>>> > about
>>> 30
>>>> > columns - most of the columns have complex expressions which control
>>>> > the
>>>> > color of the individual columns based on data in the rows.
>>>> >
>>>> > The problem we are having is that once the insertion process creates
>>>> > a
>>>> > thousand or so rows the insertion gets slower and slower and slower -
>>>> > sometimes taking a half hour or more to add 10 thousand rows. The
>>> process
>>>> > is created by a simple loop and only initially inserting values in
>>>> > two
>>>> > columns during the initialization phase - so I know it is not getting
>>> lost
>>>> > somewhere.
>>>> >
>>>> > Does anyone have any experience with this and what might be done to
>>> build
>>>> > a
>>>> > large collection of such rows quickly?
>>>> >
>>>> > Thanks
>>>> >
>>>> >
>>>>
>>>>
>>>
>>>
>>
>>
>
>


Dean Jones Posted on 2008-03-28 16:18:13.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <47ecf315$1@forums-1-dub> <47ecf54b@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 165
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ed1a45@forums-1-dub>
Date: 28 Mar 2008 08:18:13 -0800
X-Trace: forums-1-dub 1206721093 10.22.241.152 (28 Mar 2008 08:18:13 -0800)
X-Original-Trace: 28 Mar 2008 08:18:13 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86562
Article PK: 415822

I agree with the array stuff, but I have yet to code an example where its
even measurable.

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Chris Pollach" <cpollach@travel-net.com> wrote in message
news:47ecf54b@forums-1-dub...
>
> Thanks Dean ... I needed a wake-up call and some coffee .... not to
> mention thawing out from the cold here in Canada <LOL>.
>
> Yes, what I have done before is load an array in reverse sequence - then
> use PB's DOT notation to load from the array to the DS's buffer. Loading
> the array in reverse forces contiguous memory allocation (not the DWO -
> Zzzzzzz).
>
> Thank you for keeping me honest! :-)
>
>
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47ecf315$1@forums-1-dub...
>> What???
>>
>> Thats not correct if you insert a large number it will not insert a row
>> at the end of your records.
>>
>> If you have 10 rows and you insertrow( 10000 ) the next row added with be
>> 11.
>>
>> --
>> Dean Jones
>> CEO
>> PowerObjects
>> http://www.powerobjects.com
>> (612) 339-3355 Ext. 112
>>
>> TeamSybase
>> * * Think Sybase * *
>>
>>
>> "Chris Pollach" <cpollach@travel-net.com> wrote in message
>> news:47ebeb8a$1@forums-1-dub...
>>> Glenn;
>>>
>>> 1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>> resources in the O/S. A hidden DW Control does have GDI resources right
>>> away because you can always issue a DC.Visible = TRUE. A DS knows better
>>> as it does not have any Visible property. :-)
>>>
>>> 2) Also, if you know the # of rows before the inert sequence ... load
>>> the data in reverse.
>>>
>>> For example:
>>>
>>> Select Max ( ) .... Where ... into :ll_no;
>>>
>>> For ll_loop = ll_no to 1
>>> DC.InsertRow (ll_loop)
>>> NEXT
>>>
>>> The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO
>>> to allocate "continuous" memory and the remaining InsertRow ( ) method
>>> calls then fill up the memory space. In ascending scenario the DWO is
>>> constantly issuing small Malloc requests to the O/S and thus the DWO
>>> buffers are fragmented across memory boundaries.
>>>
>>> HTH
>>>
>>>
>>> --
>>> Regards ... Chris
>>> http://chrispollach.pbdjmagazine.com
>>> ,\|/,
>>> (0 0)
>>> -(_)-
>>>
>>>
>>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>>> news:47ebe967$1@forums-1-dub...
>>>>I wasn't setting redraw to false bu the datawindow was hidden - being
>>>>built
>>>> on a separate hidden tab and if I remember correctly I tried turning
>>>> redraw
>>>> off once and it did'nt matter significantly.
>>>>
>>>> I am definitely going to try the object notation - where did you find
>>>> that?
>>>>
>>>> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
>>>> news:47ebd47c$1@forums-1-dub...
>>>>> are you setting redraw to false? Also it will be much faster to insert
>>>>> all
>>>>> the rows at once then loop through and set the data.
>>>>>
>>>>> example
>>>>>
>>>>> //You have zero rows
>>>>>
>>>>> dw_1.object.id[10000] = 0
>>>>>
>>>>> //You now have 10000 rows.
>>>>>
>>>>> --
>>>>> Dean Jones
>>>>> CEO
>>>>> PowerObjects
>>>>> http://www.powerobjects.com
>>>>> (612) 339-3355 Ext. 112
>>>>>
>>>>> TeamSybase
>>>>> * * Think Sybase * *
>>>>>
>>>>>
>>>>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>>>>> news:47ebcde9$1@forums-1-dub...
>>>>> > We have an application which builds a grid datawindow report with
>>>>> > about
>>>> 30
>>>>> > columns - most of the columns have complex expressions which control
>>>>> > the
>>>>> > color of the individual columns based on data in the rows.
>>>>> >
>>>>> > The problem we are having is that once the insertion process creates
>>>>> > a
>>>>> > thousand or so rows the insertion gets slower and slower and
>>>>> > slower -
>>>>> > sometimes taking a half hour or more to add 10 thousand rows. The
>>>> process
>>>>> > is created by a simple loop and only initially inserting values in
>>>>> > two
>>>>> > columns during the initialization phase - so I know it is not
>>>>> > getting
>>>> lost
>>>>> > somewhere.
>>>>> >
>>>>> > Does anyone have any experience with this and what might be done to
>>>> build
>>>>> > a
>>>>> > large collection of such rows quickly?
>>>>> >
>>>>> > Thanks
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>


Chris Pollach Posted on 2008-03-28 16:24:14.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub> <47ebeb8a$1@forums-1-dub> <47ecf315$1@forums-1-dub> <47ecf54b@forums-1-dub> <47ed1a45@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 173
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Response
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ed1bae$1@forums-1-dub>
Date: 28 Mar 2008 08:24:14 -0800
X-Trace: forums-1-dub 1206721454 10.22.241.152 (28 Mar 2008 08:24:14 -0800)
X-Original-Trace: 28 Mar 2008 08:24:14 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86563
Article PK: 415823

Well ... here is a little project for you over the weekend then! :-)

"Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
news:47ed1a45@forums-1-dub...
>I agree with the array stuff, but I have yet to code an example where its
>even measurable.
>
> --
> Dean Jones
> CEO
> PowerObjects
> http://www.powerobjects.com
> (612) 339-3355 Ext. 112
>
> TeamSybase
> * * Think Sybase * *
>
>
> "Chris Pollach" <cpollach@travel-net.com> wrote in message
> news:47ecf54b@forums-1-dub...
>>
>> Thanks Dean ... I needed a wake-up call and some coffee .... not to
>> mention thawing out from the cold here in Canada <LOL>.
>>
>> Yes, what I have done before is load an array in reverse sequence - then
>> use PB's DOT notation to load from the array to the DS's buffer. Loading
>> the array in reverse forces contiguous memory allocation (not the DWO -
>> Zzzzzzz).
>>
>> Thank you for keeping me honest! :-)
>>
>>
>>
>> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
>> news:47ecf315$1@forums-1-dub...
>>> What???
>>>
>>> Thats not correct if you insert a large number it will not insert a row
>>> at the end of your records.
>>>
>>> If you have 10 rows and you insertrow( 10000 ) the next row added with
>>> be 11.
>>>
>>> --
>>> Dean Jones
>>> CEO
>>> PowerObjects
>>> http://www.powerobjects.com
>>> (612) 339-3355 Ext. 112
>>>
>>> TeamSybase
>>> * * Think Sybase * *
>>>
>>>
>>> "Chris Pollach" <cpollach@travel-net.com> wrote in message
>>> news:47ebeb8a$1@forums-1-dub...
>>>> Glenn;
>>>>
>>>> 1) Use a DataStore is has less overhead as it does NOT allocate any GDI
>>>> resources in the O/S. A hidden DW Control does have GDI resources right
>>>> away because you can always issue a DC.Visible = TRUE. A DS knows
>>>> better as it does not have any Visible property. :-)
>>>>
>>>> 2) Also, if you know the # of rows before the inert sequence ... load
>>>> the data in reverse.
>>>>
>>>> For example:
>>>>
>>>> Select Max ( ) .... Where ... into :ll_no;
>>>>
>>>> For ll_loop = ll_no to 1
>>>> DC.InsertRow (ll_loop)
>>>> NEXT
>>>>
>>>> The first InsertRow ( ) where ll_loop= 9999 for example forces the DWO
>>>> to allocate "continuous" memory and the remaining InsertRow ( ) method
>>>> calls then fill up the memory space. In ascending scenario the DWO is
>>>> constantly issuing small Malloc requests to the O/S and thus the DWO
>>>> buffers are fragmented across memory boundaries.
>>>>
>>>> HTH
>>>>
>>>>
>>>> --
>>>> Regards ... Chris
>>>> http://chrispollach.pbdjmagazine.com
>>>> ,\|/,
>>>> (0 0)
>>>> -(_)-
>>>>
>>>>
>>>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>>>> news:47ebe967$1@forums-1-dub...
>>>>>I wasn't setting redraw to false bu the datawindow was hidden - being
>>>>>built
>>>>> on a separate hidden tab and if I remember correctly I tried turning
>>>>> redraw
>>>>> off once and it did'nt matter significantly.
>>>>>
>>>>> I am definitely going to try the object notation - where did you find
>>>>> that?
>>>>>
>>>>> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
>>>>> news:47ebd47c$1@forums-1-dub...
>>>>>> are you setting redraw to false? Also it will be much faster to
>>>>>> insert all
>>>>>> the rows at once then loop through and set the data.
>>>>>>
>>>>>> example
>>>>>>
>>>>>> //You have zero rows
>>>>>>
>>>>>> dw_1.object.id[10000] = 0
>>>>>>
>>>>>> //You now have 10000 rows.
>>>>>>
>>>>>> --
>>>>>> Dean Jones
>>>>>> CEO
>>>>>> PowerObjects
>>>>>> http://www.powerobjects.com
>>>>>> (612) 339-3355 Ext. 112
>>>>>>
>>>>>> TeamSybase
>>>>>> * * Think Sybase * *
>>>>>>
>>>>>>
>>>>>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>>>>>> news:47ebcde9$1@forums-1-dub...
>>>>>> > We have an application which builds a grid datawindow report with
>>>>>> > about
>>>>> 30
>>>>>> > columns - most of the columns have complex expressions which
>>>>>> > control the
>>>>>> > color of the individual columns based on data in the rows.
>>>>>> >
>>>>>> > The problem we are having is that once the insertion process
>>>>>> > creates a
>>>>>> > thousand or so rows the insertion gets slower and slower and
>>>>>> > slower -
>>>>>> > sometimes taking a half hour or more to add 10 thousand rows. The
>>>>> process
>>>>>> > is created by a simple loop and only initially inserting values in
>>>>>> > two
>>>>>> > columns during the initialization phase - so I know it is not
>>>>>> > getting
>>>>> lost
>>>>>> > somewhere.
>>>>>> >
>>>>>> > Does anyone have any experience with this and what might be done to
>>>>> build
>>>>>> > a
>>>>>> > large collection of such rows quickly?
>>>>>> >
>>>>>> > Thanks
>>>>>> >
>>>>>> >
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>


Dean Jones Posted on 2008-03-28 13:28:59.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47ebe967$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 79
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ecf29b$1@forums-1-dub>
Date: 28 Mar 2008 05:28:59 -0800
X-Trace: forums-1-dub 1206710939 10.22.241.152 (28 Mar 2008 05:28:59 -0800)
X-Original-Trace: 28 Mar 2008 05:28:59 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86549
Article PK: 415809

redraw does make a huge difference, I have tested many times.

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebe967$1@forums-1-dub...
>I wasn't setting redraw to false bu the datawindow was hidden - being built
> on a separate hidden tab and if I remember correctly I tried turning
> redraw
> off once and it did'nt matter significantly.
>
> I am definitely going to try the object notation - where did you find
> that?
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47ebd47c$1@forums-1-dub...
>> are you setting redraw to false? Also it will be much faster to insert
>> all
>> the rows at once then loop through and set the data.
>>
>> example
>>
>> //You have zero rows
>>
>> dw_1.object.id[10000] = 0
>>
>> //You now have 10000 rows.
>>
>> --
>> Dean Jones
>> CEO
>> PowerObjects
>> http://www.powerobjects.com
>> (612) 339-3355 Ext. 112
>>
>> TeamSybase
>> * * Think Sybase * *
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebcde9$1@forums-1-dub...
>> > We have an application which builds a grid datawindow report with about
> 30
>> > columns - most of the columns have complex expressions which control
>> > the
>> > color of the individual columns based on data in the rows.
>> >
>> > The problem we are having is that once the insertion process creates a
>> > thousand or so rows the insertion gets slower and slower and slower -
>> > sometimes taking a half hour or more to add 10 thousand rows. The
> process
>> > is created by a simple loop and only initially inserting values in two
>> > columns during the initialization phase - so I know it is not getting
> lost
>> > somewhere.
>> >
>> > Does anyone have any experience with this and what might be done to
> build
>> > a
>> > large collection of such rows quickly?
>> >
>> > Thanks
>> >
>> >
>>
>>
>
>


Glenn Barber Posted on 2008-03-31 17:36:06.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 58
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47f12106$1@forums-1-dub>
Date: 31 Mar 2008 09:36:06 -0800
X-Trace: forums-1-dub 1206984966 10.22.241.152 (31 Mar 2008 09:36:06 -0800)
X-Original-Trace: 31 Mar 2008 09:36:06 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86575
Article PK: 415835

I get a "name not found accessing external object property id"

IF I put a column name in it doesn;t like that either>

What am I doing wrong?

"Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
news:47ebd47c$1@forums-1-dub...
> are you setting redraw to false? Also it will be much faster to insert all
> the rows at once then loop through and set the data.
>
> example
>
> //You have zero rows
>
> dw_1.object.id[10000] = 0
>
> //You now have 10000 rows.
>
> --
> Dean Jones
> CEO
> PowerObjects
> http://www.powerobjects.com
> (612) 339-3355 Ext. 112
>
> TeamSybase
> * * Think Sybase * *
>
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47ebcde9$1@forums-1-dub...
> > We have an application which builds a grid datawindow report with about
30
> > columns - most of the columns have complex expressions which control the
> > color of the individual columns based on data in the rows.
> >
> > The problem we are having is that once the insertion process creates a
> > thousand or so rows the insertion gets slower and slower and slower -
> > sometimes taking a half hour or more to add 10 thousand rows. The
process
> > is created by a simple loop and only initially inserting values in two
> > columns during the initialization phase - so I know it is not getting
lost
> > somewhere.
> >
> > Does anyone have any experience with this and what might be done to
build
> > a
> > large collection of such rows quickly?
> >
> > Thanks
> >
> >
>
>


Dean Jones Posted on 2008-03-31 17:42:56.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47f12106$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 77
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47f122a0$1@forums-1-dub>
Date: 31 Mar 2008 09:42:56 -0800
X-Trace: forums-1-dub 1206985376 10.22.241.152 (31 Mar 2008 09:42:56 -0800)
X-Original-Trace: 31 Mar 2008 09:42:56 -0800, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86576
Article PK: 415836

sorry, id is the column name. You one of your columns.

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47f12106$1@forums-1-dub...
>I get a "name not found accessing external object property id"
>
> IF I put a column name in it doesn;t like that either>
>
> What am I doing wrong?
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47ebd47c$1@forums-1-dub...
>> are you setting redraw to false? Also it will be much faster to insert
>> all
>> the rows at once then loop through and set the data.
>>
>> example
>>
>> //You have zero rows
>>
>> dw_1.object.id[10000] = 0
>>
>> //You now have 10000 rows.
>>
>> --
>> Dean Jones
>> CEO
>> PowerObjects
>> http://www.powerobjects.com
>> (612) 339-3355 Ext. 112
>>
>> TeamSybase
>> * * Think Sybase * *
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebcde9$1@forums-1-dub...
>> > We have an application which builds a grid datawindow report with about
> 30
>> > columns - most of the columns have complex expressions which control
>> > the
>> > color of the individual columns based on data in the rows.
>> >
>> > The problem we are having is that once the insertion process creates a
>> > thousand or so rows the insertion gets slower and slower and slower -
>> > sometimes taking a half hour or more to add 10 thousand rows. The
> process
>> > is created by a simple loop and only initially inserting values in two
>> > columns during the initialization phase - so I know it is not getting
> lost
>> > somewhere.
>> >
>> > Does anyone have any experience with this and what might be done to
> build
>> > a
>> > large collection of such rows quickly?
>> >
>> > Thanks
>> >
>> >
>>
>>
>
>


Glenn Barber Posted on 2008-03-31 18:49:57.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47f12106$1@forums-1-dub> <47f122a0$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 92
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47f13255$2@forums-1-dub>
Date: 31 Mar 2008 10:49:57 -0800
X-Trace: forums-1-dub 1206989397 10.22.241.152 (31 Mar 2008 10:49:57 -0800)
X-Original-Trace: 31 Mar 2008 10:49:57 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86578
Article PK: 415837

I guessed it might but when I did

idw_report.object.propno[ll_reporttotalrows] = ""

I get invalid row range...at runtime

I left a phone call for you - thanks.

"Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
news:47f122a0$1@forums-1-dub...
> sorry, id is the column name. You one of your columns.
>
> --
> Dean Jones
> CEO
> PowerObjects
> http://www.powerobjects.com
> (612) 339-3355 Ext. 112
>
> TeamSybase
> * * Think Sybase * *
>
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47f12106$1@forums-1-dub...
> >I get a "name not found accessing external object property id"
> >
> > IF I put a column name in it doesn;t like that either>
> >
> > What am I doing wrong?
> >
> > "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> > news:47ebd47c$1@forums-1-dub...
> >> are you setting redraw to false? Also it will be much faster to insert
> >> all
> >> the rows at once then loop through and set the data.
> >>
> >> example
> >>
> >> //You have zero rows
> >>
> >> dw_1.object.id[10000] = 0
> >>
> >> //You now have 10000 rows.
> >>
> >> --
> >> Dean Jones
> >> CEO
> >> PowerObjects
> >> http://www.powerobjects.com
> >> (612) 339-3355 Ext. 112
> >>
> >> TeamSybase
> >> * * Think Sybase * *
> >>
> >>
> >> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> >> news:47ebcde9$1@forums-1-dub...
> >> > We have an application which builds a grid datawindow report with
about
> > 30
> >> > columns - most of the columns have complex expressions which control
> >> > the
> >> > color of the individual columns based on data in the rows.
> >> >
> >> > The problem we are having is that once the insertion process creates
a
> >> > thousand or so rows the insertion gets slower and slower and slower -
> >> > sometimes taking a half hour or more to add 10 thousand rows. The
> > process
> >> > is created by a simple loop and only initially inserting values in
two
> >> > columns during the initialization phase - so I know it is not getting
> > lost
> >> > somewhere.
> >> >
> >> > Does anyone have any experience with this and what might be done to
> > build
> >> > a
> >> > large collection of such rows quickly?
> >> >
> >> > Thanks
> >> >
> >> >
> >>
> >>
> >
> >
>
>


Glenn Barber Posted on 2008-03-31 19:22:35.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47f12106$1@forums-1-dub> <47f122a0$1@forums-1-dub> <47f13255$2@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 105
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47f139fb$1@forums-1-dub>
Date: 31 Mar 2008 11:22:35 -0800
X-Trace: forums-1-dub 1206991355 10.22.241.152 (31 Mar 2008 11:22:35 -0800)
X-Original-Trace: 31 Mar 2008 11:22:35 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86579
Article PK: 415840

Ok I found a problem with the number - seems to execute ok.

Now to check the result.

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47f13255$2@forums-1-dub...
> I guessed it might but when I did
>
> idw_report.object.propno[ll_reporttotalrows] = ""
>
> I get invalid row range...at runtime
>
> I left a phone call for you - thanks.
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47f122a0$1@forums-1-dub...
> > sorry, id is the column name. You one of your columns.
> >
> > --
> > Dean Jones
> > CEO
> > PowerObjects
> > http://www.powerobjects.com
> > (612) 339-3355 Ext. 112
> >
> > TeamSybase
> > * * Think Sybase * *
> >
> >
> > "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> > news:47f12106$1@forums-1-dub...
> > >I get a "name not found accessing external object property id"
> > >
> > > IF I put a column name in it doesn;t like that either>
> > >
> > > What am I doing wrong?
> > >
> > > "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> > > news:47ebd47c$1@forums-1-dub...
> > >> are you setting redraw to false? Also it will be much faster to
insert
> > >> all
> > >> the rows at once then loop through and set the data.
> > >>
> > >> example
> > >>
> > >> //You have zero rows
> > >>
> > >> dw_1.object.id[10000] = 0
> > >>
> > >> //You now have 10000 rows.
> > >>
> > >> --
> > >> Dean Jones
> > >> CEO
> > >> PowerObjects
> > >> http://www.powerobjects.com
> > >> (612) 339-3355 Ext. 112
> > >>
> > >> TeamSybase
> > >> * * Think Sybase * *
> > >>
> > >>
> > >> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> > >> news:47ebcde9$1@forums-1-dub...
> > >> > We have an application which builds a grid datawindow report with
> about
> > > 30
> > >> > columns - most of the columns have complex expressions which
control
> > >> > the
> > >> > color of the individual columns based on data in the rows.
> > >> >
> > >> > The problem we are having is that once the insertion process
creates
> a
> > >> > thousand or so rows the insertion gets slower and slower and
slower -
> > >> > sometimes taking a half hour or more to add 10 thousand rows. The
> > > process
> > >> > is created by a simple loop and only initially inserting values in
> two
> > >> > columns during the initialization phase - so I know it is not
getting
> > > lost
> > >> > somewhere.
> > >> >
> > >> > Does anyone have any experience with this and what might be done to
> > > build
> > >> > a
> > >> > large collection of such rows quickly?
> > >> >
> > >> > Thanks
> > >> >
> > >> >
> > >>
> > >>
> > >
> > >
> >
> >
>
>


Glenn Barber Posted on 2008-03-31 19:45:12.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47f12106$1@forums-1-dub> <47f122a0$1@forums-1-dub> <47f13255$2@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 104
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47f13f48$1@forums-1-dub>
Date: 31 Mar 2008 11:45:12 -0800
X-Trace: forums-1-dub 1206992712 10.22.241.152 (31 Mar 2008 11:45:12 -0800)
X-Original-Trace: 31 Mar 2008 11:45:12 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86581
Article PK: 415842

I got this to work and it is incredibly more efficient - 30 seconds instead
of hours and hours.

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47f13255$2@forums-1-dub...
> I guessed it might but when I did
>
> idw_report.object.propno[ll_reporttotalrows] = ""
>
> I get invalid row range...at runtime
>
> I left a phone call for you - thanks.
>
> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> news:47f122a0$1@forums-1-dub...
> > sorry, id is the column name. You one of your columns.
> >
> > --
> > Dean Jones
> > CEO
> > PowerObjects
> > http://www.powerobjects.com
> > (612) 339-3355 Ext. 112
> >
> > TeamSybase
> > * * Think Sybase * *
> >
> >
> > "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> > news:47f12106$1@forums-1-dub...
> > >I get a "name not found accessing external object property id"
> > >
> > > IF I put a column name in it doesn;t like that either>
> > >
> > > What am I doing wrong?
> > >
> > > "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
> > > news:47ebd47c$1@forums-1-dub...
> > >> are you setting redraw to false? Also it will be much faster to
insert
> > >> all
> > >> the rows at once then loop through and set the data.
> > >>
> > >> example
> > >>
> > >> //You have zero rows
> > >>
> > >> dw_1.object.id[10000] = 0
> > >>
> > >> //You now have 10000 rows.
> > >>
> > >> --
> > >> Dean Jones
> > >> CEO
> > >> PowerObjects
> > >> http://www.powerobjects.com
> > >> (612) 339-3355 Ext. 112
> > >>
> > >> TeamSybase
> > >> * * Think Sybase * *
> > >>
> > >>
> > >> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> > >> news:47ebcde9$1@forums-1-dub...
> > >> > We have an application which builds a grid datawindow report with
> about
> > > 30
> > >> > columns - most of the columns have complex expressions which
control
> > >> > the
> > >> > color of the individual columns based on data in the rows.
> > >> >
> > >> > The problem we are having is that once the insertion process
creates
> a
> > >> > thousand or so rows the insertion gets slower and slower and
slower -
> > >> > sometimes taking a half hour or more to add 10 thousand rows. The
> > > process
> > >> > is created by a simple loop and only initially inserting values in
> two
> > >> > columns during the initialization phase - so I know it is not
getting
> > > lost
> > >> > somewhere.
> > >> >
> > >> > Does anyone have any experience with this and what might be done to
> > > build
> > >> > a
> > >> > large collection of such rows quickly?
> > >> >
> > >> > Thanks
> > >> >
> > >> >
> > >>
> > >>
> > >
> > >
> >
> >
>
>


Dean Jones Posted on 2008-04-08 17:05:32.0Z
From: "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebd47c$1@forums-1-dub> <47f12106$1@forums-1-dub> <47f122a0$1@forums-1-dub> <47f13255$2@forums-1-dub> <47f13f48$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 123
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47fba5dc@forums-1-dub>
Date: 8 Apr 2008 10:05:32 -0700
X-Trace: forums-1-dub 1207674332 10.22.241.152 (8 Apr 2008 10:05:32 -0700)
X-Original-Trace: 8 Apr 2008 10:05:32 -0700, vip152.sybase.com
X-Authenticated-User: teamsybase
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86619
Article PK: 415879

:-)

--
Dean Jones
CEO
PowerObjects
http://www.powerobjects.com
(612) 339-3355 Ext. 112

TeamSybase
* * Think Sybase * *

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47f13f48$1@forums-1-dub...
>I got this to work and it is incredibly more efficient - 30 seconds instead
> of hours and hours.
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47f13255$2@forums-1-dub...
>> I guessed it might but when I did
>>
>> idw_report.object.propno[ll_reporttotalrows] = ""
>>
>> I get invalid row range...at runtime
>>
>> I left a phone call for you - thanks.
>>
>> "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in message
>> news:47f122a0$1@forums-1-dub...
>> > sorry, id is the column name. You one of your columns.
>> >
>> > --
>> > Dean Jones
>> > CEO
>> > PowerObjects
>> > http://www.powerobjects.com
>> > (612) 339-3355 Ext. 112
>> >
>> > TeamSybase
>> > * * Think Sybase * *
>> >
>> >
>> > "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> > news:47f12106$1@forums-1-dub...
>> > >I get a "name not found accessing external object property id"
>> > >
>> > > IF I put a column name in it doesn;t like that either>
>> > >
>> > > What am I doing wrong?
>> > >
>> > > "Dean Jones" <dean_dot_jones_at_powerobjects_dot_com> wrote in
>> > > message
>> > > news:47ebd47c$1@forums-1-dub...
>> > >> are you setting redraw to false? Also it will be much faster to
> insert
>> > >> all
>> > >> the rows at once then loop through and set the data.
>> > >>
>> > >> example
>> > >>
>> > >> //You have zero rows
>> > >>
>> > >> dw_1.object.id[10000] = 0
>> > >>
>> > >> //You now have 10000 rows.
>> > >>
>> > >> --
>> > >> Dean Jones
>> > >> CEO
>> > >> PowerObjects
>> > >> http://www.powerobjects.com
>> > >> (612) 339-3355 Ext. 112
>> > >>
>> > >> TeamSybase
>> > >> * * Think Sybase * *
>> > >>
>> > >>
>> > >> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> > >> news:47ebcde9$1@forums-1-dub...
>> > >> > We have an application which builds a grid datawindow report with
>> about
>> > > 30
>> > >> > columns - most of the columns have complex expressions which
> control
>> > >> > the
>> > >> > color of the individual columns based on data in the rows.
>> > >> >
>> > >> > The problem we are having is that once the insertion process
> creates
>> a
>> > >> > thousand or so rows the insertion gets slower and slower and
> slower -
>> > >> > sometimes taking a half hour or more to add 10 thousand rows. The
>> > > process
>> > >> > is created by a simple loop and only initially inserting values in
>> two
>> > >> > columns during the initialization phase - so I know it is not
> getting
>> > > lost
>> > >> > somewhere.
>> > >> >
>> > >> > Does anyone have any experience with this and what might be done
>> > >> > to
>> > > build
>> > >> > a
>> > >> > large collection of such rows quickly?
>> > >> >
>> > >> > Thanks
>> > >> >
>> > >> >
>> > >>
>> > >>
>> > >
>> > >
>> >
>> >
>>
>>
>
>


Chris Pollach Posted on 2008-03-27 16:45:25.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 39
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebcf25$1@forums-1-dub>
Date: 27 Mar 2008 08:45:25 -0800
X-Trace: forums-1-dub 1206636325 10.22.241.152 (27 Mar 2008 08:45:25 -0800)
X-Original-Trace: 27 Mar 2008 08:45:25 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86529
Article PK: 415789

Hi Glen;

Can you ...

1) Tell use the O/S and PB release.
2) Tell use the basics of the insertion process approach.
2) Post a Code snippet to see your logic

Thanks!

Regards ... Chris
http://chrispollach.pbdjmagazine.com
,\|/,
(0 0)
-(_)-

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebcde9$1@forums-1-dub...
> We have an application which builds a grid datawindow report with about 30
> columns - most of the columns have complex expressions which control the
> color of the individual columns based on data in the rows.
>
> The problem we are having is that once the insertion process creates a
> thousand or so rows the insertion gets slower and slower and slower -
> sometimes taking a half hour or more to add 10 thousand rows. The process
> is created by a simple loop and only initially inserting values in two
> columns during the initialization phase - so I know it is not getting lost
> somewhere.
>
> Does anyone have any experience with this and what might be done to build
> a
> large collection of such rows quickly?
>
> Thanks
>
>


Chris Pollach Posted on 2008-03-27 18:26:37.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 35
Organization: STD Inc.
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <47ebe6dd@forums-1-dub>
Date: 27 Mar 2008 10:26:37 -0800
X-Trace: forums-1-dub 1206642397 10.22.241.152 (27 Mar 2008 10:26:37 -0800)
X-Original-Trace: 27 Mar 2008 10:26:37 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86534
Article PK: 415793

Glenn;

Just another thought ... does the DWO you are inserting to have any
Computed Columns, Expressions or Global Function calls anywhere?

--
Regards ... Chris
http://chrispollach.pbdjmagazine.com
,\|/,
(0 0)
-(_)-

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:47ebcde9$1@forums-1-dub...
> We have an application which builds a grid datawindow report with about 30
> columns - most of the columns have complex expressions which control the
> color of the individual columns based on data in the rows.
>
> The problem we are having is that once the insertion process creates a
> thousand or so rows the insertion gets slower and slower and slower -
> sometimes taking a half hour or more to add 10 thousand rows. The process
> is created by a simple loop and only initially inserting values in two
> columns during the initialization phase - so I know it is not getting lost
> somewhere.
>
> Does anyone have any experience with this and what might be done to build
> a
> large collection of such rows quickly?
>
> Thanks
>
>


Glenn Barber Posted on 2008-05-16 02:32:55.0Z
From: "Glenn Barber" <gabarber@graymatterllc.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebe6dd@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 46
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1914
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <482cf257$1@forums-1-dub>
Date: 15 May 2008 19:32:55 -0700
X-Trace: forums-1-dub 1210905175 10.22.241.152 (15 May 2008 19:32:55 -0700)
X-Original-Trace: 15 May 2008 19:32:55 -0700, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86865
Article PK: 416122

Sorry I didn;t see this earlier - no CC's or GF's but lots of complex
expressions.

"Chris Pollach" <cpollach@travel-net.com> wrote in message
news:47ebe6dd@forums-1-dub...
> Glenn;
>
> Just another thought ... does the DWO you are inserting to have any
> Computed Columns, Expressions or Global Function calls anywhere?
>
> --
> Regards ... Chris
> http://chrispollach.pbdjmagazine.com
> ,\|/,
> (0 0)
> -(_)-
>
>
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:47ebcde9$1@forums-1-dub...
> > We have an application which builds a grid datawindow report with about
30
> > columns - most of the columns have complex expressions which control the
> > color of the individual columns based on data in the rows.
> >
> > The problem we are having is that once the insertion process creates a
> > thousand or so rows the insertion gets slower and slower and slower -
> > sometimes taking a half hour or more to add 10 thousand rows. The
process
> > is created by a simple loop and only initially inserting values in two
> > columns during the initialization phase - so I know it is not getting
lost
> > somewhere.
> >
> > Does anyone have any experience with this and what might be done to
build
> > a
> > large collection of such rows quickly?
> >
> > Thanks
> >
> >
>
>


Chris Pollach Posted on 2008-05-16 14:23:55.0Z
From: "Chris Pollach" <cpollach@travel-net.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebe6dd@forums-1-dub> <482cf257$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 56
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <482d98fb$1@forums-1-dub>
Date: 16 May 2008 07:23:55 -0700
X-Trace: forums-1-dub 1210947835 10.22.241.152 (16 May 2008 07:23:55 -0700)
X-Original-Trace: 16 May 2008 07:23:55 -0700, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86874
Article PK: 416132

I wonder if the expressions are the key to the noticeable slowdown - as
inserting one row forces the DWO to reevaluate all the expressions!

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:482cf257$1@forums-1-dub...
> Sorry I didn;t see this earlier - no CC's or GF's but lots of complex
> expressions.
>
> "Chris Pollach" <cpollach@travel-net.com> wrote in message
> news:47ebe6dd@forums-1-dub...
>> Glenn;
>>
>> Just another thought ... does the DWO you are inserting to have any
>> Computed Columns, Expressions or Global Function calls anywhere?
>>
>> --
>> Regards ... Chris
>> http://chrispollach.pbdjmagazine.com
>> ,\|/,
>> (0 0)
>> -(_)-
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebcde9$1@forums-1-dub...
>> > We have an application which builds a grid datawindow report with about
> 30
>> > columns - most of the columns have complex expressions which control
>> > the
>> > color of the individual columns based on data in the rows.
>> >
>> > The problem we are having is that once the insertion process creates a
>> > thousand or so rows the insertion gets slower and slower and slower -
>> > sometimes taking a half hour or more to add 10 thousand rows. The
> process
>> > is created by a simple loop and only initially inserting values in two
>> > columns during the initialization phase - so I know it is not getting
> lost
>> > somewhere.
>> >
>> > Does anyone have any experience with this and what might be done to
> build
>> > a
>> > large collection of such rows quickly?
>> >
>> > Thanks
>> >
>> >
>>
>>
>
>


Philip Salgannik Posted on 2008-05-16 15:10:08.0Z
Reply-To: "Philip Salgannik" <PhilipSalgannik@work.com>
From: "Philip Salgannik" <PhilipSalgannik@work.com>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebe6dd@forums-1-dub> <482cf257$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 56
Organization: ATWORK
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <482da3d0$1@forums-1-dub>
Date: 16 May 2008 08:10:08 -0700
X-Trace: forums-1-dub 1210950608 10.22.241.152 (16 May 2008 08:10:08 -0700)
X-Original-Trace: 16 May 2008 08:10:08 -0700, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86875
Article PK: 416135

You might want to rethink your "insertion" process. Things to consider
(since expressions need to be evaluated and rowset becomes larger and
larger) - what is going on in your rowfocuschanged event, can you do massive
inserts, i.e. move blocks of rows with dot notation, can you do the
"insertion" work in the filter buffer and then move the rows wholesale, etc.

"Glenn Barber" <gabarber@graymatterllc.com> wrote in message
news:482cf257$1@forums-1-dub...
> Sorry I didn;t see this earlier - no CC's or GF's but lots of complex
> expressions.
>
> "Chris Pollach" <cpollach@travel-net.com> wrote in message
> news:47ebe6dd@forums-1-dub...
>> Glenn;
>>
>> Just another thought ... does the DWO you are inserting to have any
>> Computed Columns, Expressions or Global Function calls anywhere?
>>
>> --
>> Regards ... Chris
>> http://chrispollach.pbdjmagazine.com
>> ,\|/,
>> (0 0)
>> -(_)-
>>
>>
>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>> news:47ebcde9$1@forums-1-dub...
>> > We have an application which builds a grid datawindow report with about
> 30
>> > columns - most of the columns have complex expressions which control
>> > the
>> > color of the individual columns based on data in the rows.
>> >
>> > The problem we are having is that once the insertion process creates a
>> > thousand or so rows the insertion gets slower and slower and slower -
>> > sometimes taking a half hour or more to add 10 thousand rows. The
> process
>> > is created by a simple loop and only initially inserting values in two
>> > columns during the initialization phase - so I know it is not getting
> lost
>> > somewhere.
>> >
>> > Does anyone have any experience with this and what might be done to
> build
>> > a
>> > large collection of such rows quickly?
>> >
>> > Thanks
>> >
>> >
>>
>>
>
>


Jim Madderra Posted on 2008-05-17 18:29:34.0Z
From: "Jim Madderra" <jmadderra@astound.net>
Newsgroups: sybase.public.powerbuilder.datawindow
References: <47ebcde9$1@forums-1-dub> <47ebe6dd@forums-1-dub> <482cf257$1@forums-1-dub> <482da3d0$1@forums-1-dub>
Subject: Re: Insertion of Datawindow Rows Slowdown
Lines: 102
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <482f240e$1@forums-1-dub>
Date: 17 May 2008 11:29:34 -0700
X-Trace: forums-1-dub 1211048974 10.22.241.152 (17 May 2008 11:29:34 -0700)
X-Original-Trace: 17 May 2008 11:29:34 -0700, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub sybase.public.powerbuilder.datawindow:86884
Article PK: 416142

The area I've noticed that often makes the most surprising difference when
retrieving large rowsets (I regulary retrieve over 100,000 - 500,000 rows in
a datawindow - from Oracle on a remote unix box), is to SetRedraw(FALSE)
before retrievestart and don't turn it back on again until done with
retrieve, filter, sort, groupcalc, etc....whatever you're doing before the
data is ready for the user - especially if you have async processing on.

The other issues can / should be tested by using the straight database query
with NO expressions/ compute in otherwise same datawindow and compare the
results against the same criteria/database/time, etc.... If it runs OK
without the expressions/computes, then add them back in one at a time and
test until you find the culprit(s). One one/two are identified, I'd stop
and try to determine a better method, come back to the group and describe
your method and purpose and the syntax that's causing grief. We may be able
to provide a better solution.

In some of my cases (which are VERY complex and compute intensive), I do all
the 'work' in a stored procedure and return the result via refcursor to the
datawindow or build a datastore with the basic query and then post process
all that in PB script before apply answers in bulk to the presentation
datawindow.

Obviously, if step 1 above proves your clean sql query to not be very well
performing then ignore all the above and work on explain plan for your query
and tune it until you get optimal/acceptable results.

In my experience, this can often turn out to be a much larger part of your
job as a developer than all the 'coding' you do, however at least in 'real'
mission-critical business applications, the most valuable time you spend, so
one should not give up easily unless impact is the user and other users is
low. Remember if your query is slow and very inefficient, it may be causing
poor performance for other users at the same time, so the savings/benefit of
tuning is magnified but no so easily quantified.


Good Luck!
Jim Madderra
jmadderra_at_astound_dot_net
jgmi_at_pge_dot_com

"Philip Salgannik" <PhilipSalgannik@work.com> wrote in message
news:482da3d0$1@forums-1-dub...
> You might want to rethink your "insertion" process. Things to consider
> (since expressions need to be evaluated and rowset becomes larger and
> larger) - what is going on in your rowfocuschanged event, can you do
> massive inserts, i.e. move blocks of rows with dot notation, can you do
> the "insertion" work in the filter buffer and then move the rows
> wholesale, etc.
> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
> news:482cf257$1@forums-1-dub...
>> Sorry I didn;t see this earlier - no CC's or GF's but lots of complex
>> expressions.
>>
>> "Chris Pollach" <cpollach@travel-net.com> wrote in message
>> news:47ebe6dd@forums-1-dub...
>>> Glenn;
>>>
>>> Just another thought ... does the DWO you are inserting to have any
>>> Computed Columns, Expressions or Global Function calls anywhere?
>>>
>>> --
>>> Regards ... Chris
>>> http://chrispollach.pbdjmagazine.com
>>> ,\|/,
>>> (0 0)
>>> -(_)-
>>>
>>>
>>> "Glenn Barber" <gabarber@graymatterllc.com> wrote in message
>>> news:47ebcde9$1@forums-1-dub...
>>> > We have an application which builds a grid datawindow report with
>>> > about
>> 30
>>> > columns - most of the columns have complex expressions which control
>>> > the
>>> > color of the individual columns based on data in the rows.
>>> >
>>> > The problem we are having is that once the insertion process creates a
>>> > thousand or so rows the insertion gets slower and slower and slower -
>>> > sometimes taking a half hour or more to add 10 thousand rows. The
>> process
>>> > is created by a simple loop and only initially inserting values in two
>>> > columns during the initialization phase - so I know it is not getting
>> lost
>>> > somewhere.
>>> >
>>> > Does anyone have any experience with this and what might be done to
>> build
>>> > a
>>> > large collection of such rows quickly?
>>> >
>>> > Thanks
>>> >
>>> >
>>>
>>>
>>
>>
>
>