SSD drives with Databases?

Community Forums/General Help/SSD drives with Databases?

andy_mc(Posted 2010) [#1]
My company write software that uses ORacle databases. We get performance issues sometimes (okay, all the time), which always seem to end up waiting for full table scans to complete. Would using SSD drives, possibly in RAID make this much better? Or do we need to fix our code?


Canardian(Posted 2010) [#2]
It should be much faster than with harddrives, since the access time is 100 times faster. The transfer time is limited by the SATA speed, so it's the same for both.

Raid 10 with 2 drives (fault tolerance) should be used, since the Raid 10 4 drive (fault tolerance+speed) speed benefit is probably not noticable with SSD drives. Hmm, actually Raid 10 with 2 drives seems the same as Raid 1 with 2 drives, but I'm not entirely sure if it's the same thing, there might be some differences when declaring it as Raid 10 array instead of Raid 1 array.

I've heard that SSD drives have quite low amount of write times compared to HDs, so that's why the Raid 10 might be good to have.

But then again, SSD drives are being improved all the time, so I don't know how many write times the newest generation has.

But you should first fix your code, since no application should ever need to do a full table scan, but always single lookups + while loops (when multiple lookups for the same base key is needed where all records are in sequence).


ragtag(Posted 2010) [#3]
Fix the code first, look at caching and more. :)

What are you currently running it on? A single disk, a raid or what?

I have an X25 SSD in my laptop, which more or less doubled the performance of the machine. Everything loads twice as fast and the whole thing feels much more snappy. It's mainly random access that you'll be gaining a lot with. Of course, this is going from a 2.5" laptop drive, so if you're going from at 15.000RPM disk, the change may not be so big.

There are alternatives. There are SSD disks made for servers (which I think can take more rewrites), there are normal raids, which if big enough can get read speeds of more than 300-400mb/sec. And there are RAM raids, which are insanely fast.

Lately I've been looking at GlusterFS, which probably isn't suitable for an Oracle database, but is very cool. It lets you combine a number of computers with their local storage (raid, disks, whatever), into one storage pool, with or without redundancy. The cool thing about it is that the more machines you add, the bigger and faster the storage becomes. It's probably most useful when you have many machines accessing the storage at the same time, as the load will get distributed across all the servers. :)


Adam Novagen(Posted 2010) [#4]
SSD drives? Solid State Drive drives? Never heard of 'em, or Automatic Teller Machine machines, for that matter. ;)


Brucey(Posted 2010) [#5]
Table scans?? Are you serious?
You want to get yourself a DBA m8, and sort out your tables :-)

As for the various comments about fixing your code, it seems they don't understand how a proper database works... "single lookups + while loops" ? eh?

RAID?
I guess you don't really have a big database, as it sounds like you are running it on a PC.
If you're serious, you'll have a proper big disk array, possible a SAN with fibre channel to your server. The SAN should be able to look after the disks for you (hot swapping and the like).


If you think going from disk to ssd is going to solve your problems, you need some serious help :-)


big10p(Posted 2010) [#6]
SAN + fibre isn't exactly cheap. :)


Brucey(Posted 2010) [#7]
Indeed :-)
But I'm just trying to point out that if you *really* need performance, you may have to pay for it - rather than sticking a couple of ssd's in a PC and hoping for the best.

Better to get someone in who knows what they are doing. Sounds like the database needs a LOT of work (table/index/config wise)