Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Speeding Up SPT Statement Process
Message
 
 
To
04/02/2009 13:57:21
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2008 Server
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01379289
Message ID:
01379293
Views:
18
>I use the following SPT string in a loop through several part numbers at a time. The process is very slow. What can I do to this SPT statement or my data files to make it faster?
>
>
>sql = "Select recseq, CASE WHEN faistatus = 1" +
>					" THEN 'Accepted' WHEN faistatus = 2 THEN 'Rejected' ELSE 'SEE ORIGINAL FAI' END" +
>					" As fais, inspectord, dwgrev, datstmpi From webprddt6.drawmfai mt1" +	
>					" JOIN ( SELECT webprddt6.drawmfai.partno, MAX(webprddt6.drawmfai.datstmpi) AS MaxDate FROM webprddt6.drawmfai Where toolinspr = 0 And conformir = 0 And DATE(datstmpin) is Not NULL GROUP BY webprddt6.drawmfai.partno) mt3" +
>					" ON mt3.partno = mt1.partno AND mt3.MaxDate = mt1.datstmpi" +
>					" Where mt1.partno in('" + arg1.trim() + "','" + pnmod + "','" + modpartno + "','" + arg1.trim().substring(0,11) + "','" + arg1.trim().substring(0,10) + "','" + arg1.trim().substring(0,9) + "','" + arg1.trim().substring(0,8) +
>					"') And toolinspr = 0 And conformir = 0";
>
Do you have an Index on PartNo and DatStMpti? Also try to switch
mt3.MaxDate = mt1.datstmpi
to
mt1.DatStMpti = mt3.MaxDate

In SQL Server 2005 you can use ROW_NUMBER() technique instead, but I doubt it would be quicker.
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform