需要用索引来解决,索引的创建规则如下:
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
几点关键的东西:
1 好的数据库结构可以提高的效率是你难以想象的,所以在做数据库设计的时候就需要做好这方面的考虑,这是基础,需要考虑表的大小,结构,访问频率,以及表之间的相关性,提个建议,除开主键之外最好不要做过多的约束,比如外键啊之类的,强烈建议不使用,通过业务逻辑来控制。
2 对于访问量大的表,或者数据量大的表,建议做分表,分表的方法很多,这里不赘述了,通过结构和业务逻辑来实现性能的优化。
3 尽量使用索引查询,就是无法直接查询到,也可以通过索引字段做约束条件缩小查询范围,比如通过PLSQL的查询计划就可以看到SQL语句的执行情况。
4 数据库设计的时候,要根据实际情况来做,不建议墨守成规的按照什么BC范式啊,4级范式之类的来搞,比如China Mobile的数据库基本就能达到一级范式的标准,所以要根据你的需求来设计,比能扫一次表就可以完成的数据库操作,你就没必要把表拆分成2个表,经验积累起来就有想法了,这个几句话说不清楚的。
相关推荐
本文将深入探讨“用智能优化限制提高Oracle数据库性能”的核心知识点,通过解析智能优化、Oracle数据库性能提升策略,以及具体的SQL执行计划调整技巧,为读者提供一份全面的指南。 ### 智能优化:提升Oracle数据库...
本资源主要聚焦于如何利用Logstash 5.6.1将Oracle数据库中的数据高效地导入到Elasticsearch中。这个过程涉及到以下关键知识点: 1. **Logstash配置**:首先,你需要配置Logstash的`input`、`filter`和`output`三个...
总结来说,"Oracle遍历数据库查找字符串"是一个实用的工具,它利用Java和Oracle数据库的特性,帮助用户快速定位数据库中的特定文本,降低了数据库搜索的复杂性和时间成本。在日常工作中,掌握这样的工具和方法对于...
在 Oracle 数据库中,正则表达式是一种强大的模式匹配工具,可以帮助用户快速搜索、替换和验证数据。从 Oracle 10g 开始,Oracle 内建了符合 IEEE POSIX (Portable Operating System for Unix)标准的正则表达式,...
在这个"数据库+hrms Oracle数据库"的主题中,我们将深入探讨Oracle数据库在HRMS系统中的应用及其重要性。 首先,Oracle数据库是甲骨文公司开发的关系型数据库管理系统,它支持SQL标准,并提供了丰富的功能,包括...
### Oracle数据库的查询优化 #### 一、何时需要考虑查询优化 在开发应用程序时,编写高效、优化的SQL语句对于提升系统性能至关重要。当遇到以下情况时,应该重点考虑查询优化: - **表连接**: 当查询涉及到多张表...
首先,SQL语句的优化是提升Oracle数据库性能的关键。在涉及多表连接时,选择合适的表连接顺序至关重要,因为不恰当的顺序可能会导致查询效率的下降。通常来说,应该选择驱动表,也就是能通过其过滤器去除最多行的表...
Oracle数据库是一种广泛应用的关系型数据库管理系统,而C#和ASP.NET则是微软.NET框架下用于构建Web应用程序的主要编程语言和平台。本示例"OracleTest"展示了如何在C# ASP.NET环境中,无需安装Oracle客户端就能实现对...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着核心地位。这份"Oracle数据库开发手册"提供了全面的Oracle相关知识,包括SQL语法、数据库管理、性能优化、安全设置等多个方面,是...
在Oracle数据库的使用中,SQL语句的性能优化至关重要,尤其是在处理大规模数据时。优化SQL语句能够显著提升系统的响应速度,提高系统的可用性和效率。以下是一些关于SQL语句性能调整的重要原则和注意事项: 1. **IS...
总的来说,"Oracle错误码大全"是Oracle数据库用户必备的参考资料,它能帮助用户迅速识别并解决遇到的问题,提高故障排查的效率,保障数据库系统的稳定运行。这份资料的价值在于其全面性和实用性,无论你是初学者还是...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统,以其高效、稳定和强大的功能在企业级应用中占据重要地位。本项目“人脉资源管理系统”就是利用Oracle数据库技术开发的一款实用小系统,通过VC6.0编译...
在某些情况下,如文本搜索和匹配的连接查询,索引的使用能够使得操作效率得到十倍甚至更高的提升。 接着,表分区是另一种有效的数据库性能优化手段。通过将大表拆分成多个小分区,能够使得对单个分区的操作更加高效...
总的来说,Oracle数据库可视化工具,如SI Object Browser,极大地简化了数据库管理工作,提升了工作效率,是数据库管理员和开发人员的得力助手。通过熟练掌握这类工具,可以更好地管理和维护Oracle数据库,保证系统...
"基于Oracle数据库海量数据的查询优化研究" 本文主要探讨了 Oracle 数据库海量数据的查询优化研究,通过对 Oracle 数据库的分析,讨论了分页查询技术、SQL 语句优化、索引技术等查询优化方法,并对 Oracle 数据库的...
Oracle数据库优化技术是确保高效数据管理和应用性能的关键。Oracle数据库是一个广泛应用的关系型...通过综合运用这些技术,可以显著提升Oracle数据库的运行效率,满足大规模应用的需求,并确保系统的稳定性和响应速度。
Oracle数据库查找替换工具是一款专为Oracle数据库设计的实用软件,它可以帮助数据库管理员和开发人员高效地在数据库中进行数据查找和替换操作。在日常的数据库维护和管理中,有时我们需要定位并更新特定的数据,或者...
Navicate旨在提高工作效率,简化Oracle数据库的日常维护工作。 一、数据库连接 Navicate for Oracle支持多种方式连接到Oracle数据库,包括TCP/IP、SSL/TLS、Named Pipes等。用户可以设置连接参数,如主机名、端口号...
在VB.NET中连接Oracle数据库是开发企业级应用时常见的任务,Oracle数据库因其高效稳定而被广泛采用。本文将深入探讨如何使用VB.NET进行Oracle数据库的连接,并提供详细的知识点讲解。 首先,要连接Oracle数据库,...