Hi all,
Any SQL Database Admins round here? Some internet/intranet software we've written at my work is built around an SQL database - it's a kind of Knowledge Management tool. Anyway, one of the queries (a search) asks for data to be returned from a table currently containing over 37 million records. Well, this takes ages - it takes SQL 40 seconds just to count them! Getting on for 5 minutes or so to produce all the results.
I've been experimenting with load balancing and clustering the last few days and am quite impressed, but although this will be great for web server performance and database resilience, it's not going to help the database performance - all the load balancing stuff MS offer is basically geared towards sharing queries out, not sharing the work each query does. i.e. it's geared towards loads of small queries, not huge ones, or ones that take ages to respond.
So, what I'm asking is, how do I get SQL to perform faster? When doing the search function, the application sits there waiting for data to come back from the SQL Server, but the SQL Server's CPU is never going over 20-30% - how can I make SQL use all the available resources? The only option we've found is to change the worker threads (Which is great for lots of queries) and Boost NT Priority which hardly made a difference.
I'd understand it if the CPUs hit 100% - chuck a more powerful system at it.
The servers (IIS and SQL) are Dual Xeon 550Mhz (half meg cache), 1Gig RAM, RAID 5 - 5x18Gb UW SCSI, Running Win2K, SQL is version 2000.
Any ideas would be great!
Any SQL Database Admins round here? Some internet/intranet software we've written at my work is built around an SQL database - it's a kind of Knowledge Management tool. Anyway, one of the queries (a search) asks for data to be returned from a table currently containing over 37 million records. Well, this takes ages - it takes SQL 40 seconds just to count them! Getting on for 5 minutes or so to produce all the results.
I've been experimenting with load balancing and clustering the last few days and am quite impressed, but although this will be great for web server performance and database resilience, it's not going to help the database performance - all the load balancing stuff MS offer is basically geared towards sharing queries out, not sharing the work each query does. i.e. it's geared towards loads of small queries, not huge ones, or ones that take ages to respond.
So, what I'm asking is, how do I get SQL to perform faster? When doing the search function, the application sits there waiting for data to come back from the SQL Server, but the SQL Server's CPU is never going over 20-30% - how can I make SQL use all the available resources? The only option we've found is to change the worker threads (Which is great for lots of queries) and Boost NT Priority which hardly made a difference.
I'd understand it if the CPUs hit 100% - chuck a more powerful system at it.
The servers (IIS and SQL) are Dual Xeon 550Mhz (half meg cache), 1Gig RAM, RAID 5 - 5x18Gb UW SCSI, Running Win2K, SQL is version 2000.
Any ideas would be great!
Comment