4、 应用程序结构和算法
    建立查询条件索引仅仅是提高速度的前提条件,响应速度的提高还依赖于对索引的使用。因为人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,特别是对数据量不是特别大的数据库操作时,是否建立索引和使用索引的好坏对程序的响应速度并不大,因此程序员在书写程序时就忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在数据量特别大时或者大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!
因此在书写应用程序的SQL的 where子句时,注意以下几种情况: 
1、避免使用不兼容的数据类型。例如float和int、char和varchar、binary和varbinary是不兼容的。数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作。例如: 
SELECT name FROM employee WHERE salary > 60000 
在这条语句中,如salary字段是money型的,则优化器很难对其进行优化,因为60000是个整型数。我们应当在编程时将整型转化成为钱币型,而不要等到运行时转化。 
2、避免对搜索参数使用其它数学操作符,如要将 
SELECT name FROM employee WHERE SUBSTRING(id, 1, 1) = 'B' 
SELECT name FROM emplyee WHERE salary * 12 > 30000 
写成为: 
SELECT name FROM employee WHERE id like ‘B%' 
SELECT name FROM emplyee WHERE salary > 3000 
3、、避免使用!=或<>等这样的操作符,因为这会使系统无法使用索引,而只能直接搜索表中的数据。例如: 
SELECT id FROM employeeWHERE id != 'B%' 
优化器将无法通过索引来确定将要命中的行数,因此需要搜索该表的所有行。 
4、在应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如select * 语句;尽量不要在应用中使用数据库游标,游标是非常有用的工具,但比使用常规的、面向集的SQL语句需要更大的开销;按照特定顺序提取数据的查找。
上面我们提到的是一些基本的提高查询速度的注意事项,但是在更多的情况下,程序员往往需要反复试验比较不同的语句以得到最佳方案。此外更为重要的是需要数据库管理员在数据库的服务器一端调整数据库管理系统的参数,以得到更快的响应性能。