![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Does anyone know of anything that I should be aware of? Tyler Davey |
#3
| |||
| |||
|
#4
| |||
| |||
|
|
The real moral of the story here is whenever you directly attach to your data over a network wire you will hit performance snags, even with SQL based systems. Accessing data on the same machine is always faster! |
|
#1: Get pick PDP package and write .net asp front end modules that access the data from pick and publish the routines as SOAP calls. I would NOT directly access files but instead write pick routines to return datasets that you would call via the PDP package. #2: I would then write my front end package to call the asp.net soap calls. #3: As I port off pick, I would then be only required to re-write the .net ASP calls to reference whereever the data is currently. |
#5
| |||
| |||
|
|
We actually are using the 3 tier model when it comes to Sql Server, as we are able to write Stored Procs and access them through our DAL layer in .net. The architecture of our system is as follows: ASP.net acts as our GUI that makes calls to our Business/Middle Layer. Our middle layer access our data via our DAL layer that allows us to use multiple databases. That layers, depending on which database we are using, will either hit the database for a stored proc(SQL/Oracle) or use in code sql statements to produce the same results(D3/UniData). when implemented over D3/UniData, we are using a convuluted 3 tier model in that the GUI, Business Layer, and Data Layer are kept seperate from each other, but we use inline sql statements instead of sql statements that are contained within the db. The real moral of the story here is whenever you directly attach to your data over a network wire you will hit performance snags, even with SQL based systems. Accessing data on the same machine is always faster! I agree, except that my performance testing is proving that as wrong. If the web server and db server are on the same machine and I'm accessing it, D3 and UniData take upwards of 5 times longer to access the data than if I access it from a load balanced architecture with the web server on one machine and the db server on another machine - reread my original post and you'll see the numbers that i've collected. #1: Get pick PDP package and write .net asp front end modules that access the data from pick and publish the routines as SOAP calls. I would NOT directly access files but instead write pick routines to return datasets that you would call via the PDP package. #2: I would then write my front end package to call the asp.net soap calls. #3: As I port off pick, I would then be only required to re-write the .net ASP calls to reference whereever the data is currently. This is not possible for several reasons, the main one being a knowledge and resource crunch. For the re-write of the application, the developers are strong in the Sql Server / Oracle world (RDBMS) and very weak in the Pick world. Our legacy developers that know Pick cannot write the routines as they do not have time to (busy acting as billable). So really it comes down to a "get it done with the resources you have" issue. Everything is working great from a design and coding perspective. What the issue is is that why does it take so long for D3/UniData to execute SQL commands through ODBC? Keep in mind that we are using Windows as our server. We are talking huge differences in numbers that are not related to the server or the code. UniData takes almost 2 minutes to execute approximately 30 inserts, 10 deletes and 3 queries. D3 takes about 20 seconds to do the same. Sql Server takes less than a second to do the same. This is when everything is isolated on one system - no network bandwidth used at all, all calls made on one machine. If I place the web server on one system and the db server on another, performance increases substantially to run the same queries - D3 about 1 second, UniData 2 seconds and Sql is sub second. Again, as per your email, the results being posted by UniData and D3 are disturbing as it SHOULD be faster to run them on the same box then on seperate boxes. So where does the problem lay? ODBC? Windows? D3? UniData? .net? Load Balancing? The Server? How can the same code take 2 minutes on a self contained system and 2 seconds when load balanced? Does pick battle with .net processes for cpu usage? Is there a contention issue that we don't know about? You cannot tell me that it is normal for D3/UniData to take 5 - 50 times longer to run queries on the same box then it does when the web server is removed and placed on a different box. |
#6
| |||
| |||
|
#7
| |||
| |||
|
|
I don't think this is it, but I'm wondering if it's a DNS issue (and I do mean Domain Name Server). Are you using a DSN (and I do mean Data Source Name) which refers to localhost with some name that must be resolved elsewhere? Are you using a fully qualified host.domain.tld reference? Try adding an entry in the local hosts file or use 127.0.0.1 as the server address. The fact that both UniData and D3 are both behaving similarly means the issue is probably outside them. It's not clear which system you have hosting the DBMS s/w: Have you tried connecting to that same degraded DBMS box via ODBC from another client with Excel and MS Query? For D3, have you tried running D3 and the ODBC Server in foreground so that you can watch inbound queries? It should be obvious if the delay is in the connection or in the turnaround after the connection. Dumb question, but how are your file sizes (frames going into overflow)? Are you using indexes? HTH. Tony |
#8
| |||
| |||
|
|
Don't know how to run the ODBC Server in the foreground to view the queries coming into D3. Is it similar to Profiler from SQL Server? |
#9
| |||
| |||
|
#10
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |