Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Oracle选择查询性能_Performance_Oracle_Select - Fatal编程技术网

Performance Oracle选择查询性能

Performance Oracle选择查询性能,performance,oracle,select,Performance,Oracle,Select,我正在写一份申请书。它处于初始阶段,所以表中的记录数量不多,但稍后它将在同一个表中有大约100万条记录 我想知道在选择SELECT查询时应该考虑哪些要点,这将从表中获取大量数据,所以它不会降低性能。第一条规则: 不要将大量数据带回应用程序 除非要显示大量数据中的每一项,否则不要获取它。DBMS和应用程序之间的通信(相对)较慢,因此尽可能避免这种情况。它不会太慢,以至于不应该使用DBMS或类似的东西,但是如果可以减少DBMS和应用程序之间的数据流,总体性能通常会提高 通常,一种简单的方法是只列

我正在写一份申请书。它处于初始阶段,所以表中的记录数量不多,但稍后它将在同一个表中有大约100万条记录

我想知道在选择SELECT查询时应该考虑哪些要点,这将从表中获取大量数据,所以它不会降低性能。

第一条规则:
  • 不要将大量数据带回应用程序
除非要显示大量数据中的每一项,否则不要获取它。DBMS和应用程序之间的通信(相对)较慢,因此尽可能避免这种情况。它不会太慢,以至于不应该使用DBMS或类似的东西,但是如果可以减少DBMS和应用程序之间的数据流,总体性能通常会提高

通常,一种简单的方法是只列出应用程序中实际需要的列,而不是使用“SELECT*”检索所有列,因为您只使用现有的24列中的4列

第二条规则:
  • 尽量确保DBMS不必查看大量数据
尽可能减少DBMS必须做的工作。它很忙,并且通常在任何给定的时间代表许多人。如果您可以减少DBMS处理查询所需的工作量,那么每个人都会更高兴

考虑一些事情,比如确保表上有适当的索引——不要太少,也不要太多。如果设计得当,索引可以大大提高许多查询的性能。但是,请始终记住,每个索引都必须维护,因此,当给定表上有更多索引需要管理时,插入、删除和更新会变慢

(我应该提到:这些建议都不是针对Oracle的-您可以将其应用于任何DBMS。)

第一条规则:
  • 不要将大量数据带回应用程序
除非要显示大量数据中的每一项,否则不要获取它。DBMS和应用程序之间的通信(相对)较慢,因此尽可能避免这种情况。它不会太慢,以至于不应该使用DBMS或类似的东西,但是如果可以减少DBMS和应用程序之间的数据流,总体性能通常会提高

通常,一种简单的方法是只列出应用程序中实际需要的列,而不是使用“SELECT*”检索所有列,因为您只使用现有的24列中的4列

第二条规则:
  • 尽量确保DBMS不必查看大量数据
尽可能减少DBMS必须做的工作。它很忙,并且通常在任何给定的时间代表许多人。如果您可以减少DBMS处理查询所需的工作量,那么每个人都会更高兴

考虑一些事情,比如确保表上有适当的索引——不要太少,也不要太多。如果设计得当,索引可以大大提高许多查询的性能。但是,请始终记住,每个索引都必须维护,因此,当给定表上有更多索引需要管理时,插入、删除和更新会变慢


(我应该提到:这些建议都不是针对Oracle的,您可以将其应用于任何DBMS。)

要获得数据库的良好性能,您需要记住很多事情。首先,这是设计,在这里您应该主要考虑规范化和非规范化(拆分表,但仍然没有要求性能高的联接)

在性能方面,经常会有大量的调整。但是,80%的性能是由SQL代码决定的。下面是一些可能对您有所帮助的链接



要获得良好的数据库性能,您需要记住很多事情。首先,这是设计,在这里您应该主要考虑规范化和非规范化(拆分表,但仍然没有要求性能高的联接)

在性能方面,经常会有大量的调整。但是,80%的性能是由SQL代码决定的。下面是一些可能对您有所帮助的链接



要记住几点:

  • 只获取需要在客户端使用的列
  • 确保设置了正确的索引,以帮助查找记录。这些可以稍后再做,但如果可以的话,最好为它们做计划
  • 确保已正确说明列宽和数据大小。当TINYINT将保存所有可能的值时,不要使用INT。一个有100个TINYINT字段的行比一个有100个INT字段的行获取的速度快,并且每次读取时您也能够获取更多的行
  • 根据您需要数据的干净程度,可能允许执行“脏读”,即数据库在更新过程中获取数据。在某些情况下,这可以显著加快速度,尽管这意味着您获得的数据可能不是绝对最新的
  • 给你的DBA啤酒。拥抱

Jason要记住几点:

  • 只获取需要在客户端使用的列
  • 确保设置了正确的索引,以帮助查找记录。这些可以稍后再做,但如果可以的话,最好为它们做计划
  • 确保已正确说明列宽和数据大小。当TINYINT将保存所有可能的值时,不要使用INT。一个有100个TINYINT字段的行比一个有100个INT字段的行获取的速度快,并且每次读取时您也能够获取更多的行
  • 根据您需要数据的干净程度,可能允许执行“脏读”,即数据库在更新过程中获取数据。这能让人感觉舒服