I guess I did not respond to a lot of the original question.  (Got a phone call 
and 

was side tracked) 



There should be no speed difference between a temp and static view. 



Proper indexing on the tables is a must for performance when using views. 
(Either type) 

The linking column needs to be indexed.  Rule of thumb... the fewer the linking 

columns, usually the better performance.  But they need indexed if the tables 
have 

larger number of rows in them. 



In my experience, it seems that reports are faster when temp tables are used 
versus 

views.  However, this is not scientific proven, just my opinion.   I am not 
sure about 

DB grids.   



I would not expect compacting the form or compiling would effect the db grid 
speed much. 

Compacting might cause the form to startup faster, but not perform faster. 



 If your view runs very fast with a select command, but is slow in the form DB 
grid, you might 

have double where clauses.  I.E.  your view definition might be "Where t1.part# 
= t2.part#" 

and then your DB grid where clause be something else, such as "Where company = 
'ACME'. 



You might get better performance using a temp view, defining it at form startup 
or even 

when moving into the dbgrid with the single where clause "Where t1.part# = 
t2.part# and 

company = 'Acme'.    This is another reason to use tempviews.  Create them on 
the fly. 



The above is not a confirmed logic.  I am unsure if the the DB grid executes 
the view first 

and then narrows the data.  But if so, having two where clauses would be 
slower. 



-Bob 



















----- Original Message ----- 
From: "Paul InterlockInfo" <[email protected]> 
To: "RBASE-L Mailing List" <[email protected]> 
Sent: Thursday, January 21, 2010 5:10:36 PM GMT -06:00 US/Canada Central 
Subject: [RBASE-L] - Re: form /db grid / network 




Thank You Bob ;)   



I will quit manipulating the views etc.. and concentrate on form 
options/settings. 












Sincerely, 

Paul Dewey 



Just need to know where to set focus (-ON)  gig  not that it was off mentally. 







From: [email protected] [mailto:[email protected]] On Behalf Of 
[email protected] 
Sent: Thursday, January 21, 2010 4:48 PM 
To: RBASE-L Mailing List 
Subject: [RBASE-L] - Re: form /db grid / network 




All views are simply stored "Select" commands.  There is no data stored or 
collected ahead of time. 

The select command is fired at the time of use. 



One of the main differences between temp views and permanent ones are that temp 
views are 

session specific.  I.E.  only accessible by the session that created it.  This 
is very handy in a multi 

user environment. 



For example, a temp view similar to : 



set var vUserID = (CVAL(NetUser)) 

create temp view tmpView (UserID, State, TotalSales) + 

as select UserID, State, Sum(Sales) from TableX + 

group by UserID, State where UserID = .vUserId 



would retrieve and sum only records where UserID was the login name of the user 
on the PC. 

Your application code could use the above to hold data for any user and any 
number 

of users at any given time, without a lot of special coding and is easier than 
with 

a permanent view. 



This is a simplistic example but may point to the idea for temp views and 
tables. 



-Bob 



----- Original Message ----- 
From: "Paul InterlockInfo" <[email protected]> 
To: "RBASE-L Mailing List" <[email protected]> 
Sent: Thursday, January 21, 2010 1:50:26 PM GMT -06:00 US/Canada Central 
Subject: [RBASE-L] - Re: form /db grid / network 

I have a form that is basically a dbgrid type that uses a temp_view and the 
temp_view is based off two temp_tables.  It has one DB Grid cell click eep, I 
am assuming these are not implemented until you click on them? 



So out of curiosity are views static or populated on request?    If you have a 
view in a db  is that view ready and waiting WHEN you use a report or view. Or 
is it populated when you browse and/or use in a report or form.  (A discussion 
I had and I could not answer) if true, then the assumption would be that in 
some cases (local) a temp_view has limited value.  



Using dbgrid:   Faster using a:  1. Temp_Table  2. Temp_View ?   I could 
project the view (temp or not) into a table then use that Table verses using a 
view if it is faster.  I tried both and could not see a difference. 



This form I am using is sluggish compared to what I am used to.  No special 
calls/eeps/etc… stripped it down to bear dbgrid only.  I have the sort and 
where clause being done in the temp_table & temp_view  Now that part is real 
fast.  Then the form fires and bang,  the slow part kicks in.  I have tried 
running the form compacted within the compiled eep and not compiled.  Over the 
network is the same as local. As Expected ;)   a small difference but not 
noticeable really. 



I tried enhanced and not.  Heck I tried just using db_edit and it was the same. 
Is it bad news to use a db_grid?  In this case using a view even a temp view? 





All the other forms are fast (Most one table based, order entry etc…).  Way 
fast!  Even on a Networked.  Just this one pulling two tables into a view and 
using that view to drive the form.  I tried temp_view and static_view (one in 
the db, not temp) 


















Sincerely, 

Paul D. 





Background Information: 



I did the usual unload/run output/pack/error messages on/latest ver.   9.0     
XP-3 and same on Win 7.0,  Novell-Suse Linux Network 100/100/1000 



RFF Code Example w/edits that are not important for this example, but wanted to 
show incase.  This is in a bit button on the rff. 



CONNECT apar_part 

PAUSE 3 USING '1    Calculating 125,000+ records... Please Stand By 
...          '  + 

CAPTION 'BE PATIENT! - BE PATIENT!  - BE PATIENT!!!'  + 

ICON WINDOWS  OPTION GAUGE_VISIBLE ON  + 

|GAUGE_COLOR RED  + 

|GAUGE_INTERVAL 50  + 

|MESSAGE_FONT_NAME VERDANA  + 

|MESSAGE_FONT_SIZE 10  + 

|MESSAGE_FONT_COLOR WHITE  + 

|THEMENAME Steel Blue 



SET ERROR MESSAGE 2758 OFF 

PROJECT TEMP treturn FROM return USING returndate,-- plus 5 more columns   -- 
3k rows 

PROJECT TEMP td_invoice FROM d_invoice USING custno, -- plus 5 more columns  
--67k rows 

SET ERROR MESSAGE 2758 ON 



SET ERROR MESSAGE 677 OFF 

DROP VIEW tvreturn 

CREATE TEMP VIEW tvreturn AS SELECT t1.returndate,--etc…. + 

FROM treturn t1,td_invoice t2 WHERE t1.id= t2.serial_id and t2.invoicedate > 
t1.returndate ORDER BY t2.serial_id,t2.invoicedate   --8k rows 

SET ERROR MESSAGE 677 ON 

Cls 

-- Just using this part to watch the process change  and it does the above part 
FAST   then below pause for 3 seconds approx then wait!   Cls is on before 
start form eep.  So I can see that happen. 

PAUSE 3 USING '2    Loading 10,000+ records into the Form... Please Stand By 
...          '  + 

CAPTION 'BE PATIENT! - BE PATIENT!  - BE PATIENT!!!'  + 

ICON WINDOWS  OPTION GAUGE_VISIBLE ON  + 

|GAUGE_COLOR RED  + 

|GAUGE_INTERVAL 30  + 

|MESSAGE_FONT_NAME VERDANA  + 

|MESSAGE_FONT_SIZE 10  + 

|MESSAGE_FONT_COLOR WHITE  --+ 

--|THEMENAME Steel Blue 



EDIT USING auditinvtoreturn 

DISCONNECT apar_part 

RETURN

Reply via email to