473,387 Members | 1,721 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

A Game Company in Trouble

My Name is Nick Soutter, I am the owner of a small game company, Aepox Games
(We're in the middle of a name change from "Lamar Games"),
www.lamargames.net.

Our first commercial game, Andromeda Online (www.andromedaonline.net) is
going into beta soon. It runs on an evaluation edition of SQL Server 2000
(our intention is, when it launches, we earn the money to buy a copy before
the evaluation expires).

We have been testing Andromeda Online, and found that saves to the database
take about 10 seconds (we were anticipating less than 1). We felt we need
somebody experienced in optimizing sql databases to help us optimize the
database, and get it running in the best method for our particular
application.

Our program accesses the database in Java, and people with understanding in
how to optimize java connections would be a tremendous help.

My company is small, and we honestly cant afford much. Everybody on this
project, from the sound guys to the graphic artist, has worked for 1/10 to
1/100 of the value of the job. We're simply a starting company looking for
dedicated people who are willing to work more for credit than money.

We can offer credit on our website
(http://www.andromedaonline.net/credits.html) to anybody who helps us, but
little more (maybe $100, but we're very over budget, and in desperate need
of help). Because of how we intend the game to run (with maybe 100-200
concurrent games running online), a 10 second save time is simply
unacceptable.

Anybody who would be willing to help us, please send a resume to
he**@andromedaonline.net. Experience would be nice, but not a requirement.
We're looking for someone who can talk with our programmer about the types
of calls made to our SQL database, and then can log into the DB and optimize
it to run as fast as possible considering our specific needs.

Thank you for your time.

Nick Soutter

Aepox (Lamar) Games
Jul 20 '05 #1
14 3203
BlackHawke wrote:
We have been testing Andromeda Online, and found that saves to the database
take about 10 seconds (we were anticipating less than 1). We felt we need
somebody experienced in optimizing sql databases to help us optimize the
database, and get it running in the best method for our particular
application.

Our program accesses the database in Java, and people with understanding in
how to optimize java connections would be a tremendous help.
Some simple advice, without knowing anything about your application.
It's highly unlikely that the problem is related to your use of Java-
based interfaces to the database. The problem is almost certainly with
the SQL that you are running, and is independent of the means of issuing
that SQL to the database itself. An exception applies, though, if
you're using some high-level abstraction like an OR mapper that
generates the SQL for you. Is this hand-written JDBC and SQL, or
something more complex?
Anybody who would be willing to help us, please send a resume to
he**@andromedaonline.net. Experience would be nice, but not a requirement.
We're looking for someone who can talk with our programmer about the types
of calls made to our SQL database, and then can log into the DB and optimize
it to run as fast as possible considering our specific needs.


Given your financial constraints, it would perhaps be more prudent for
you to take advantage of the advice freely offered on this newsgroup.
You'd be expected to take part in finding the solution, by for example
putting together test cases and doing some troubleshooting, but if you
have a real question about a factual or difficult issue, someone will
almost certainly jump in to help.

A good place to start is to look over the statements that are issued in
a save. Many databases have a logging mode that can capture this info,
but if your database doesn't have such a mode or flag, you could do it
from the application or with a filter JDBC driver. So to start with the
easiest solution, which database are you using?

--
www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
Jul 20 '05 #2
BlackHawke (bl********@legacygames.net) writes:
Our first commercial game, Andromeda Online (www.andromedaonline.net) is
going into beta soon. It runs on an evaluation edition of SQL Server
2000 (our intention is, when it launches, we earn the money to buy a
copy before the evaluation expires).
When did you download this evaluation edition? Beware that the original
evaluation edition is vulnerable for the Slammer worm. If you go to
http://www.microsoft.com/sql you can obtain a version of the Evaluation
Edition that is Slammer-safe.
We have been testing Andromeda Online, and found that saves to the
database take about 10 seconds (we were anticipating less than 1). We
felt we need somebody experienced in optimizing sql databases to help us
optimize the database, and get it running in the best method for our
particular application.


What exactly are you saving? Does it take 10 seconds to save a single
row to the database? Or does it take 10 seconds to save a player's
entire game?

The latter could mean a whole lot calls to SQL Server to insert data.
If all operations are through INSERT statements sent from the Java
code, there is a whole lot to win by using stored procedures. For even
higher speed, you could construct an XML document, and then unpack that on
the SQL Server side with OPENXML(). You save a lot of network roundtrips
that way.
--
Erland Sommarskog, SQL Server MVP, so****@algonet.se

Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techinf...2000/books.asp
Jul 20 '05 #3
To add to everybody else's statements.

Run Profiler against the DB and see exactly what is being sent. If you can
get statements out then you can look at the execution plans and perhaps that
will point out a reason for the preceived slowness.

--

----------------------------
Allan Mitchell (Microsoft SQL Server MVP)
MCSE,MCDBA
www.SQLDTS.com
I support PASS - the definitive, global community
for SQL Server professionals - http://www.sqlpass.org

"Erland Sommarskog" <so****@algonet.se> wrote in message
news:Xn**********************@127.0.0.1...
BlackHawke (bl********@legacygames.net) writes:
Our first commercial game, Andromeda Online (www.andromedaonline.net) is
going into beta soon. It runs on an evaluation edition of SQL Server
2000 (our intention is, when it launches, we earn the money to buy a
copy before the evaluation expires).


When did you download this evaluation edition? Beware that the original
evaluation edition is vulnerable for the Slammer worm. If you go to
http://www.microsoft.com/sql you can obtain a version of the Evaluation
Edition that is Slammer-safe.
We have been testing Andromeda Online, and found that saves to the
database take about 10 seconds (we were anticipating less than 1). We
felt we need somebody experienced in optimizing sql databases to help us
optimize the database, and get it running in the best method for our
particular application.


What exactly are you saving? Does it take 10 seconds to save a single
row to the database? Or does it take 10 seconds to save a player's
entire game?

The latter could mean a whole lot calls to SQL Server to insert data.
If all operations are through INSERT statements sent from the Java
code, there is a whole lot to win by using stored procedures. For even
higher speed, you could construct an XML document, and then unpack that on
the SQL Server side with OPENXML(). You save a lot of network roundtrips
that way.
--
Erland Sommarskog, SQL Server MVP, so****@algonet.se

Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techinf...2000/books.asp

Jul 20 '05 #4
BlackHawke wrote:
I suspect that most of the problem lies in how our database is configured.
Knowing nothing about configuring these things, I set it up in the default
settings. I've boosted the priority, and that helped, but I know nothing
about enhancing the database response time.

We are using MS SQL Server 2000... Is that what you meant by what database
are we using? As far as how the JAVA code interacts with it, I'd have to ask
the programmer.


Okay, please do ask the programmer to make an appearance here; there's
no reason to work through a level of indirection.

--
www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
Jul 20 '05 #5
What database are you using Oracle/MSSQL/MySQL/Postgresql and the platform
NT/XP/Linux/BSD? Without knowing that there is no way to make any
recommendations regarding performance tunning.

"Christopher Browne" <cb******@acm.org> wrote in message
news:bf************@ID-125932.news.uni-berlin.de...
"BlackHawke" <bl********@legacygames.net> writes:
My Name is Nick Soutter, I am the owner of a small game company, Aepox Games Our program accesses the database in Java, and people with understanding in how to optimize java connections would be a tremendous help.


A few database performance principles are vital:

1. It's probably fruitful to find someone that knows something about
SQL Server. There are likely some parameters that may be tuned that
will improve performance a fair bit just by having someone turn a few
"virtual knobs."

2. There is a pretty high startup cost when opening a connection or
when first submitting a query.

If the connection or prepared query can get reused over and over, that
amortizes the startup cost.

For instance, if they keep opening and closing the connection over and
over again, that would be an excellent reason to expect performance to
be terrible.

When querying data, the usual rule is that while running one query to
pull 100,000 rows of data is expensive, but not _too_ expensive; the
flip case, of submitting 100,000 queries, each drawing 1 row, is a
RIDICULOUS way of doing things, and will perform terribly. I'm not
sure if Sybase designed "mass data load" facilities into their
database (which later was bought by Microsoft), but it would be a
little surprising if there wasn't.

3. Indexes can be really helpful.

Certainly for improving query performance, but sometimes even on
inserts, in terms of validating things.

For instance, if the DB schema does integrity checks on foreign keys,
you probably need to have indexes on those foreign tables in order for
it not to behave like shaking up a bag of rocks.
--
wm(X,Y):-write(X),write('@'),write(Y). wm('cbbrowne','ntlug.org').
http://cbbrowne.com/info/lsf.html
"How much more helpful could I be than to provide you with the
appropriate e-mail address? I could engrave it on a clue-by-four and
deliver it to you in Chicago, I suppose." -- Seen on Slashdot...

Jul 20 '05 #6
If I failed to mention it earlier, SQL 2000, Evaluation Edition, on Windows
2003 Server, Eval Edition.

I'll ask the programmer to make an appearance ASAP.

Nick
"Ed Yu" <ek**@sc.rr.com> wrote in message
news:H1*********************@twister.southeast.rr. com...
What database are you using Oracle/MSSQL/MySQL/Postgresql and the platform
NT/XP/Linux/BSD? Without knowing that there is no way to make any
recommendations regarding performance tunning.

"Christopher Browne" <cb******@acm.org> wrote in message
news:bf************@ID-125932.news.uni-berlin.de...
"BlackHawke" <bl********@legacygames.net> writes:
My Name is Nick Soutter, I am the owner of a small game company, Aepox Games Our program accesses the database in Java, and people with
understanding
in how to optimize java connections would be a tremendous help.


A few database performance principles are vital:

1. It's probably fruitful to find someone that knows something about
SQL Server. There are likely some parameters that may be tuned that
will improve performance a fair bit just by having someone turn a few
"virtual knobs."

2. There is a pretty high startup cost when opening a connection or
when first submitting a query.

If the connection or prepared query can get reused over and over, that
amortizes the startup cost.

For instance, if they keep opening and closing the connection over and
over again, that would be an excellent reason to expect performance to
be terrible.

When querying data, the usual rule is that while running one query to
pull 100,000 rows of data is expensive, but not _too_ expensive; the
flip case, of submitting 100,000 queries, each drawing 1 row, is a
RIDICULOUS way of doing things, and will perform terribly. I'm not
sure if Sybase designed "mass data load" facilities into their
database (which later was bought by Microsoft), but it would be a
little surprising if there wasn't.

3. Indexes can be really helpful.

Certainly for improving query performance, but sometimes even on
inserts, in terms of validating things.

For instance, if the DB schema does integrity checks on foreign keys,
you probably need to have indexes on those foreign tables in order for
it not to behave like shaking up a bag of rocks.
--
wm(X,Y):-write(X),write('@'),write(Y). wm('cbbrowne','ntlug.org').
http://cbbrowne.com/info/lsf.html
"How much more helpful could I be than to provide you with the
appropriate e-mail address? I could engrave it on a clue-by-four and
deliver it to you in Chicago, I suppose." -- Seen on Slashdot...


Jul 20 '05 #7
While you may suggest the obvious such as indexing the proper columns, you
need to know much more about the system as a whole to even begin suggesting
scenerio that could be the bottleneck. In fact, even if you have follow all
the best RDBMS best practice (including tunning SQL by generating execution
plans), you may have chocked up your system if you are not careful about
creating large objects on the java end or misconfigurating the connection
pool. So, with that said, we really need to begin at point zero, which in
this case is:

1) Platform - Win2K
2) Database - MSSQL 2000 Eval
3) Java - ??? a web application I assume, it is JSP? Servlet? Using any type
of framework Struts/WebWorks?
4) Web server - ??? Apache/IIS/Tomcat?
5) Application Server - ??? Tomcat/Weblogic/Websphere?
6) Physical system configuration - machine A (web server), machine B
(application server), machine C (database server)
7) Client - ??? Http client/Applet/C/C++ clients?
8) Protocol - ??? HTTP/HTTPS/Socket?
"Christopher Browne" <cb******@acm.org> wrote in message
news:bf************@ID-125932.news.uni-berlin.de...
"Ed Yu" <ek**@sc.rr.com> writes:
What database are you using Oracle/MSSQL/MySQL/Postgresql and the platform NT/XP/Linux/BSD? Without knowing that there is no way to make any
recommendations regarding performance tunning.


You're very much missing the point.

The three principles I presented are true regardless of platform and
regardless of DBMS implementation. While different implementations
may differ, there ARE some near universal principles.
--
(format nil "~S@~S" "cbbrowne" "acm.org")
http://www3.sympatico.ca/cbbrowne/rdbms.html
"C++ is more of a rube-goldberg type thing full of high-voltages,
large chain-driven gears, sharp edges, exploding widgets, and spots to
get your fingers crushed. And because of it's complexity many (if not
most) of it's users don't know how it works, and can't tell ahead of
time what's going to cause them to loose an arm." -- Grant Edwards

Jul 20 '05 #8
> 1) Platform - Win2K
2) Database - MSSQL 2000 Eval
3) Java - ??? a web application I assume, it is JSP? Servlet? Using any type
of framework Struts/WebWorks?
4) Web server - ??? Apache/IIS/Tomcat?
5) Application Server - ??? Tomcat/Weblogic/Websphere?
6) Physical system configuration - machine A (web server), machine B
(application server), machine C (database server)
7) Client - ??? Http client/Applet/C/C++ clients?
8) Protocol - ??? HTTP/HTTPS/Socket?


Hello Everyone, I'm the lead programmer on this project. Thanks ahead
of time for any-and-all good advice coming from you fine folks :)
Well, this is a standard java application, no web-server involved. Im
using microsofts JDBC4 SQLServer driver for my connection to the
database, no ODBC (ugh!) involved. Also, Im using the apache commons
connection pool classes to handle all of the database connection
pooling as well as the player execution thread pooling.
I dont think we have any indexes setup on our tables just yet. Most of
the tables have the primary key set to an identity column I call
"IndexCol". The important tables have this ID column as well as a
"GameID", "PlayerID", "ShipID" fields to determin exactly which object
this row of data corresponds to. Do I want to setup the indexs on
these three columns?

The speed problems we see currently, arent on the SELECT end of the
spectrum, they are on the INSERT parts. I am using prepared statements
to "INSERT" the data row-by-row into the database. Im not using batch
mode at the moment. I've tried to make the tables as lean as possible,
factoring out columns into other tables where possible. The main ship
table is pretty large, maybe 100 columns of int/smallint/bit data, no
text. Right now, to update the game specifics, I delete all the data
in that table for the specific game, then I use the prepared
statements to re-insert the updated data. I dont want to use "UPDATE"
sql because some records aren't restored, thats why I like the
delete/insert combo.

If theres any other info I can send, please let me know.

Thanks, Greg.
Jul 20 '05 #9
[Followups trimmed to comp.databases.ms-sqlserver, as this is the only
relevant group.]

DiscoStu (gr*********@hotmail.com) writes:
The speed problems we see currently, arent on the SELECT end of the
spectrum, they are on the INSERT parts. I am using prepared statements
to "INSERT" the data row-by-row into the database. Im not using batch
mode at the moment. I've tried to make the tables as lean as possible,
factoring out columns into other tables where possible. The main ship
table is pretty large, maybe 100 columns of int/smallint/bit data, no
text. Right now, to update the game specifics, I delete all the data
in that table for the specific game, then I use the prepared
statements to re-insert the updated data. I dont want to use "UPDATE"
sql because some records aren't restored, thats why I like the
delete/insert combo.


So, how many rows do insert when it takes 10 seconds to save a game?

The obvious improvement I see is to use stored procedures instead. If
that doesn't help, package data in an XML document and send this to
SQL Server, and then write a stored procedure that unpacks it with
OPENXML. Or use bulk-copy routines to load the data, but I have no
idea to do that from JDBC.
--
Erland Sommarskog, SQL Server MVP, so****@algonet.se

Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techinf...2000/books.asp
Jul 20 '05 #10
Without considering the physical server hardware and network configurations,
looks like you need a cluster index (not primary key) on the GAMEID column.
Since you do not have any index on this column, everytime someone starts the
same, you are doing a full table scan to locate and remove rows associated
with the GAMEID.

Looks like you need to read a little more about RDBMS application
programming and best pratices. BTW, I think for MSSQL, at least you need to
place the data files and log files on to seperate hardware (ie. disks
preferably on different controllers).

In addition, I am a little uneasy about using RDBMS for games since SQL
engines, IMHO, got too much overhead for a gaming application.

"DiscoStu" <gr*********@hotmail.com> wrote in message
news:84**************************@posting.google.c om...
1) Platform - Win2K
2) Database - MSSQL 2000 Eval
3) Java - ??? a web application I assume, it is JSP? Servlet? Using any type of framework Struts/WebWorks?
4) Web server - ??? Apache/IIS/Tomcat?
5) Application Server - ??? Tomcat/Weblogic/Websphere?
6) Physical system configuration - machine A (web server), machine B
(application server), machine C (database server)
7) Client - ??? Http client/Applet/C/C++ clients?
8) Protocol - ??? HTTP/HTTPS/Socket?


Hello Everyone, I'm the lead programmer on this project. Thanks ahead
of time for any-and-all good advice coming from you fine folks :)
Well, this is a standard java application, no web-server involved. Im
using microsofts JDBC4 SQLServer driver for my connection to the
database, no ODBC (ugh!) involved. Also, Im using the apache commons
connection pool classes to handle all of the database connection
pooling as well as the player execution thread pooling.
I dont think we have any indexes setup on our tables just yet. Most of
the tables have the primary key set to an identity column I call
"IndexCol". The important tables have this ID column as well as a
"GameID", "PlayerID", "ShipID" fields to determin exactly which object
this row of data corresponds to. Do I want to setup the indexs on
these three columns?

The speed problems we see currently, arent on the SELECT end of the
spectrum, they are on the INSERT parts. I am using prepared statements
to "INSERT" the data row-by-row into the database. Im not using batch
mode at the moment. I've tried to make the tables as lean as possible,
factoring out columns into other tables where possible. The main ship
table is pretty large, maybe 100 columns of int/smallint/bit data, no
text. Right now, to update the game specifics, I delete all the data
in that table for the specific game, then I use the prepared
statements to re-insert the updated data. I dont want to use "UPDATE"
sql because some records aren't restored, thats why I like the
delete/insert combo.

If theres any other info I can send, please let me know.

Thanks, Greg.

Jul 20 '05 #11
Ed Yu (ek**@sc.rr.com) writes:
Without considering the physical server hardware and network
configurations, looks like you need a cluster index (not primary key) on
the GAMEID column. Since you do not have any index on this column,
everytime someone starts the same, you are doing a full table scan to
locate and remove rows associated with the GAMEID.
Since the access problems were with saving, indexes are not so much of
an issue, although we don't know what the statements look like. INSERT
VALUES does not need any indexes, unless there is some trigger involved.
True, though, DiscoStu is deleting all data for a game first, and that
DELETE could use an index. I would suspect, however, that at this point
he don't have that much data in the database yet, so he has not yet
arrived at problems where indexes are the solution.
Looks like you need to read a little more about RDBMS application
programming and best pratices. BTW, I think for MSSQL, at least you need
to place the data files and log files on to seperate hardware (ie. disks
preferably on different controllers).


Undoubtedly this can be good for performance, but there are many systems
out there that don't have this configuration and still have good
performance. I don't think this is the right place to start.
--
Erland Sommarskog, SQL Server MVP, so****@algonet.se

Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techinf...2000/books.asp
Jul 20 '05 #12
Hal Berenson (ha*****@truemountainconsulting.com) writes:
Ok, let's start with something very basic. Are you wrapping the delete
and inserts in a transaction, or is each statement a separate
transaction? At a minimum all of the inserts should be inside a
user-defined transaction.
Not talking of the fact that the DELETE where he sweeps the old data
should be part of that transaction too. Not so much for the speed of
the save, but for the integrity. If there is a crash before everything
is saved, the player should at least get his old save back. Not an
incomplete save from which he cannot continue, and neither nothing at
all.
As for your general problem of lack of database expertise, I doubt that
"credit" is going to get you all the help you need. You may have to look
for a consultant who will trade time for a small amount of equity in your
company.


Yes, the gaming company appears to be in dear need of venture capital
one way or another.
--
Erland Sommarskog, SQL Server MVP, so****@algonet.se

Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techinf...2000/books.asp
Jul 20 '05 #13
"BlackHawke" <bl********@legacygames.net> writes:
My Name is Nick Soutter, I am the owner of a small game company, Aepox Games
(We're in the middle of a name change from "Lamar Games"),
www.lamargames.net.

Our first commercial game, Andromeda Online (www.andromedaonline.net) is
going into beta soon. It runs on an evaluation edition of SQL Server 2000
(our intention is, when it launches, we earn the money to buy a copy before
the evaluation expires).

We have been testing Andromeda Online, and found that saves to the database
take about 10 seconds (we were anticipating less than 1). We felt we need
somebody experienced in optimizing sql databases to help us optimize the
database, and get it running in the best method for our particular
application.
You need to find out what it is doing during these 10 seconds. Run
some kind of profiling on your progarm to see what it is doing. i.e
Opening JDBC connection (if it's doing that), getting a connection
from a connection pool (you really should be doing something like
that), sending sql statement to server, waiting for server to complete
the statement,closing (or releasing) the dabase connection. When you've found
out how much time these various things are taking then you can see which parts
you need to optimise.
Our program accesses the database in Java, and people with understanding in
how to optimize java connections would be a tremendous help.

Use pooling so that you don't have to open a connection every time you
want to access the database

If your problem is tha database then you'll more than likely get
improvements by looking at ths SQL you are using and seing if you can
rephrase your statement in a btter way (i.e. have a look at any joins
you are using and whic table is the driving table in a join, make sure
that any table lookups are using indexes etc. ) You'll fidn that any
optimistaion you make in this area will make much more of a difference
than any tweaking of database parameters that you can do.


My company is small, and we honestly cant afford much. Everybody on this
project, from the sound guys to the graphic artist, has worked for 1/10 to
1/100 of the value of the job. We're simply a starting company looking for
dedicated people who are willing to work more for credit than money.
Good luck with your product, I hope it works out so that all the guys
who've been working for little money can start getting very lareg
pay-checks


We can offer credit on our website
(http://www.andromedaonline.net/credits.html) to anybody who helps us, but
little more (maybe $100, but we're very over budget, and in desperate need
of help). Because of how we intend the game to run (with maybe 100-200
concurrent games running online), a 10 second save time is simply
unacceptable.

You can have this info for nothing, enjoy :-).

Here's some more advice for free. If you've got nobody on your team
who knows about databases and their design your design is probably a
bit if a mess. It will then probably take a bit more than some tunig
to sort out your problems. Just have a look at posts in some of the
Oracle newsgroups to get some idea of what professional database
people think about letting java programmers loose on databases :-)

Anybody who would be willing to help us, please send a resume to
he**@andromedaonline.net. Experience would be nice, but not a requirement.
We're looking for someone who can talk with our programmer about the types
of calls made to our SQL database, and then can log into the DB and optimize
it to run as fast as possible considering our specific needs.


As someone else posted , get one of the programmers to come on here, but
get him/her to read the above first and come ready with answers to the
questions above and then getting answers back will be a lot quicker,

cheers

Phil
--

As of now they're on Double SECRET Probation!
Jul 20 '05 #14
Phil Britton <ph**@phil-britton.com> wrote in message news:<ul***********@phil-britton.com>...
"BlackHawke" <bl********@legacygames.net> writes:
My Name is Nick Soutter, I am the owner of a small game company, Aepox Games
(We're in the middle of a name change from "Lamar Games"),
www.lamargames.net.

Our first commercial game, Andromeda Online (www.andromedaonline.net) is
going into beta soon. It runs on an evaluation edition of SQL Server 2000
(our intention is, when it launches, we earn the money to buy a copy before
the evaluation expires).

We have been testing Andromeda Online, and found that saves to the database
take about 10 seconds (we were anticipating less than 1). We felt we need
somebody experienced in optimizing sql databases to help us optimize the
database, and get it running in the best method for our particular
application.


You need to find out what it is doing during these 10 seconds. Run
some kind of profiling on your progarm to see what it is doing. i.e
Opening JDBC connection (if it's doing that), getting a connection
from a connection pool (you really should be doing something like
that), sending sql statement to server, waiting for server to complete
the statement,closing (or releasing) the dabase connection. When you've found
out how much time these various things are taking then you can see which parts
you need to optimise.
Our program accesses the database in Java, and people with understanding in
how to optimize java connections would be a tremendous help.


Use pooling so that you don't have to open a connection every time you
want to access the database

If your problem is tha database then you'll more than likely get
improvements by looking at ths SQL you are using and seing if you can
rephrase your statement in a btter way (i.e. have a look at any joins
you are using and whic table is the driving table in a join, make sure
that any table lookups are using indexes etc. ) You'll fidn that any
optimistaion you make in this area will make much more of a difference
than any tweaking of database parameters that you can do.


My company is small, and we honestly cant afford much. Everybody on this
project, from the sound guys to the graphic artist, has worked for 1/10 to
1/100 of the value of the job. We're simply a starting company looking for
dedicated people who are willing to work more for credit than money.


Good luck with your product, I hope it works out so that all the guys
who've been working for little money can start getting very lareg
pay-checks


We can offer credit on our website
(http://www.andromedaonline.net/credits.html) to anybody who helps us, but
little more (maybe $100, but we're very over budget, and in desperate need
of help). Because of how we intend the game to run (with maybe 100-200
concurrent games running online), a 10 second save time is simply
unacceptable.


You can have this info for nothing, enjoy :-).

Here's some more advice for free. If you've got nobody on your team
who knows about databases and their design your design is probably a
bit if a mess. It will then probably take a bit more than some tunig
to sort out your problems. Just have a look at posts in some of the
Oracle newsgroups to get some idea of what professional database
people think about letting java programmers loose on databases :-)

> Anybody who would be willing to help us, please send a resume to
he**@andromedaonline.net. Experience would be nice, but not a requirement.
We're looking for someone who can talk with our programmer about the types
of calls made to our SQL database, and then can log into the DB and optimize
it to run as fast as possible considering our specific needs.


As someone else posted , get one of the programmers to come on here, but
get him/her to read the above first and come ready with answers to the
questions above and then getting answers back will be a lot quicker,

cheers

Phil


Hi

Have noted what you guys are trying to do, and as a DBA and
ex-developer, thought I'd try and help point you in the right
direction. From the sounds of what you are doing and your tight
budget, I guess you're not running the SQL DB on a powerful,
multi-processor, multi-GB RAM, multi-SCSI Array system. If this is
the case and you're system is modest, then there isn't a great deal
you can do for tuning the SQL Server itself.

As someone mentioned earlier, you're more likely to get better
performance by looking at the way you do your SQL coding - think there
is a quote in the O'Reilly T-SQL Programming book, that says
"...optimising SQL Server settings only accounts for around 20% of
performance improvement, 80% is obtained by tuning your SQL code...".
Do you make use of Stored Procedures? This will help, as compared to
using SQL code from the Client. Don't use SQL Server Cursors - make
sure your code is Set-based (what RDBMS's are designed to run best
with). Look into the Metadata structure - are there loads of joins?
If so, consider denormalising and test to see if this gives an
improvement. Is it the SQL Server that is slow to update? or is it
the connection/network link? You might find that the actual writing
to the DB is quick and the bottleneck is elsewhere.

HTH

n0t999
Jul 20 '05 #15

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: step_y | last post by:
Those who is interested in computers, games can check out a free massive online strategy scifi game at http://www.spacefederation.net This game is also looking for staff, especially those in the...
21
by: BlackHawke | last post by:
My name is Nick Soutter, I own a small game development company (www.aepoxgames.net) making our first game (www.andromedaonline.net) in java. I am writing because we are having a very...
23
by: BlackHawke | last post by:
Hello! This is my second post. Ppl really helped me with the first. I hope there are answers for this one as well I own a game company (www.aepoxgames.net) releasing the beta for our first...
1
by: BlackHawke | last post by:
Hello! My name is Nick Soutter, I am the owner of a small game company in San Diego, CA called Aepox Games (www.aepoxgames.net). Our first product, Andromeda Online...
138
by: theodp | last post by:
--> From http://www.techdirt.com/articles/20040406/1349225.shtml Microsoft Patents Saving The Name Of A Game Contributed by Mike on Tuesday, April 6th, 2004 @ 01:49PM from the...
1
by: step_y | last post by:
Those who is interested in computers, games can check out a free massive online strategy scifi game at http://www.spacefederation.net This game is also looking for staff, especially those in the...
1
by: step_y | last post by:
Those who is interested in computers, games can check out a free massive online strategy scifi game at http://www.spacefederation.net This game is also looking for staff, especially those in the...
6
by: jar13861 | last post by:
Create a game in a 3x3 HTML table that works as follows: * The goal of the game is to beat the computer by scoring more points than the computer. * The game starts when a hidden random number...
1
by: Gomi | last post by:
Hi guys I'm new to C++ Programming and I am having trouble in making my Guessing game code replay. I am suppose to give the user that is playing my game the opportunity to play again with options of...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.