在做项目时候,之前没做过优化的工作,现在把学到的一些经验记下来,希望自己可以记住,也希望对别人有所帮助。
1.表空间管理。表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。
Oracle数据库中至少存在一个表空间,即SYSTEM的表空间。表空间作用主要有:A.控制用户所占用的表空间配额。建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。B.控制数据库所占用的磁盘空间。C.灵活放置表空间,提高数据库的输入输出性能。数据库管理员还可以将不同类型的数据放置到不同的表空间中,这样可以明显提高数据库输入输出性能,有利于数据的备份与恢复等管理工作,可以对表空间进行独立备份。D.大表的排序操作。对于经常查询的大表,可以放在独立表空间,有利于查询性能提高。E.日志文件与数据文件分开放,提高数据库安全性。
2.表分区管理。当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。可以按照日期、用户权限、类别对表进行分区。查询时候加上分区条件即可。只查询分区内的部分。
3.查询语句编写。A:分页,对于查询结果很多,要建立分页,将主键放进临时表,再用临时表关联实际结果,查询性能会提高很多。B。批量插入数据,如果插入数据量太大,而且字段很多,可以先插入主键,再更新。
4.表空间扩展。如果系统忽然很慢,可以查看各个表空间使用情况。在有条件的情况下适当扩展,同时注意临时表空间。