I just thought it would be helpful to post this list. The HEM FAQ has most of this information, but it's quite cluttered to find it in so many FAQs.
Please post here, if you can think of other tips that will help increase the performance of HEM, HM Import, Table Scanner, HUD and postgreSQL. Specifically for those that have a HUGE database. Ask questions, and HEM users can discuss about their experiences using these tips here.
Top 10 tips:
Upgrade your HARDWARE*:
1 to 3
-1 Get a fast harddisk! (= more important than having a QuadCore over a DualCore processor!)
---x Preferably a fast SSD harddisk (fastest) for your database and Windows (Intel or OCZ Vertex 2/3)
---x Or a really fast SCSI/SAS 10k RPM / 15k RPM harddisk (requires an expensive SAS/SCSI controller) or a VelociRaptor (not recommended)
---x A new 5400/7200 RPM IDE/SATA harddisk (slowest)
The SSD not only wins on Sequential Read/Write speeds (of big files), they win the most with access time, 4K Read/Write speeds (small files) and just "overall" I/O operations per second.
A Western Digital VelociRaptor used to be easily twice as fast as the best 7200 RPM harddisk. However it currently only is about 10% faster than the latest Seagate Barracudas, Hitachi Deskstars, Western Digital Caviar Blacks and Samsung Spinpoints F1/F3. The VelociRaptor does not justify its price difference anymore.
Note: a brand new $60 high-end 2012 model 7200 RPM harddisk will be twice as fast as your 3-4+ yrs old 7200 RPM harddisk!... get a SSD if you have a large database and often import large batches of handhistories.
LAPTOP: get one with a SSD. ALL 5400 RPM laptop harddisks are slow (favoring being energy efficient over performance,
-make sure the Control Panel-->Power Options are set to HIGH PERFORMANCE on your computer!
-Expert Users only: overclock your CPU!
An alternative to a SSD SATA harddisk: are the new PCI-Express cards like the OCZ RevoDrive. And if you have a USB 3.0 mainboard the SuperTalent RAIDDrive)
-2 Get lots of RAM (at least 2+ GB RAM recommended if you have a 10+ GB database) (note: when using more than 3 GB RAM, use a 64-bit version of Windows)
-3 PostgreSQL loves multiple CPUs, so the more CPUs the better. (Intel i5 / i7 or AMD Phenom) Also "Holdem Manager will be adding improvements that will take advantage of quad core/64 bit versions."
-Change Processes Priority. Start the Windows Task Manager, processes tab--> and while running an auto import in HoldemManager---> rightclick on HoldemManager.exe, HMHud.exe, HMimport.exe---> set priority to HIGH (not real time!), set affinity to use all your CPUs. (click for more detailed info)
Update your SOFTWARE:
-4 Always use the latest version of Holdem Manager, and use the most current version of PostgreSQL. We support 8.4.x by default.
Advanced Users: You are allowed to use 9.0/9.2 (64 bit). They will work just fine*, but they're not officially supported. *Some features (like using the internal backup/restore tool may not work. You can manually use pgadminIII instead: http://faq.holdemmanager.com/questio...estoreDatabase (this is for HM1!)
How to install HEM + PostgreSQL 8.4.
Update your Windows (use Microsoft Update, and make sure you have the latest Service Pack (SP2 for Vista, SP3 for XP)) and update all system drivers (including your mainboard and videocard driver! and .net framework updates).
-5 Remove the WinnerName, WinnerCards and WinnerWon from the Hands View Column Selector
-6 Defrag your non-SSD harddisk, using Defraggler by Piriform. Or you can use Disk Defrag by Auslogics or Power Defragmenter (all FREE software and better than the Windows included Defrag)
It is recommended to stop postgreSQL from running before you use defrag! (To stop and start the service: Start > All Programs > PostgreSQL > Stop Service / Start Service)
-7 Edit your PostgreSQL.conf file in the SQL 8.x/data folder. (you need to reboot after you've made the changes)
Do not use the Tuning Wizard. On some systems it will make changes to the postgresql.conf it shouldn't, resulting in being unable to connect to the database!
If you experience this problem--> simply go to the 8.4/data folder, undo the changes you made and reboot.
MB (set it to 20% of your system's memory, but not higher than 512 MB)
MB (set this to 4x the size of the shared_buffers)
Change at your own risk: (change them back to default if postgresql stops running, or your performance decreases)
wal_buffers = 8MB
temp_buffers = 24MB #(wal_buffers x3)
work_mem = 128MB
maintenance_work_mem = 512MB
commit_delay = 10000
checkpoint_segments = 128
checkpoint_completion_target = 0.9
Remove the # at the beginning of the line after making the changes you want otherwise PostgreSQL will still ignore them (lines with a # at the front are not interpreted).
Decrease the SIZE of your database:
-8 How to optimize the database size in 3 steps: -1/2 Vacuum + Analyse, -3 Reindex
--8.1/8.2 VACUUM + Analyse: VACUUM Analyse your database regularly (How to do a manual VACUUM)
--8.3 REINDEX (see 8.1 for instructions, but choose Reindex instead of Vacuum in pgAdmin)
-9 Purge hand histories (It will free up disk space without losing stats, but you lose the option to see the HH or view the hand in the replayer). This is only for HM1! In HM2 a purge deletes the stats too.
-10 How to make PostgreSQL stop making those big log files (I had 8 GB of logfiles before I realized you're allowed to delete the content of the data/pg_log directory!)
--11.1 A near-empty harddisk is faster than a near-full harddisk, so delete your crap! CrapCleaner by Piriform and Windows Disk Cleanup can help.
--11.2 Turn off indexing and turn off "compress this drive to save disk space" in your harddisk properties.
--11.3 Optimize Windows for "best performance" (in Control Panel/System/Advanced/Performance/Setting/Visual Effects).
--11.4 Advanced users only: save space by turning off System Restore (System/System Protection) and moving (or make it smaller if you have enough RAM) your Virtual Memory system page file (System/Advanced/Performance/Setting/Advanced).
-12 *new* Windows 7
Windows 7 users, General Windows 7 Performance Tweaks guide*
(If you already have a SSD harddisk also do all the SSD Tweaks in that guide.. don't disable hibernation!)
*Services to disable in that guide: don't disable Secondary Logon, Hibernation, SuperFetch
Anyone can think of #13 and other tips?