one of the best ways to optomise SQL is to tweak the way the data is handled and not always in the config file. sometimes the longest querie can be halfed in execution just by reducing the amount of tables to those that really provide the true data.
is this just SQL server? with out seeing your config file its hard to offer help, the data below is general and should help if your using a vanilla config file
check these aginst your own config file, and make changes where needed.
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = table_cache=1024
set-variable = sort_buffer=4M
set-variable = record_buffer=3M
set-variable = thread_cache=8
set-variable = thread_cache_size=256
set-variable = thread_concurrency=4
set-variable = myisam_sort_buffer_size=64M
[mysqldump]
quick
set-variable = max_allowed_packet=16M
[mysql]
no-auto-rehash
[isamchk]
set-variable = key_buffer=256M
set-variable = sort_buffer=256M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=256M
set-variable = sort_buffer=256M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
if yours are bigger than this then thats a problem, remember back up the old CFG file first