Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
Database 通过具有类别/状态值的列在表中查找数据_Database_Performance_Oracle_Indexing_Partitioning - Fatal编程技术网

Database 通过具有类别/状态值的列在表中查找数据

Database 通过具有类别/状态值的列在表中查找数据,database,performance,oracle,indexing,partitioning,Database,Performance,Oracle,Indexing,Partitioning,假设我们有一个水果,有大量的读取,但也有插入,虽然几乎没有更新或删除 我们有两列存储具有少量选项的值。比如类别[香蕉、苹果、橘子或梨]和状态[完成、进行中、变质、破坏或正常]。 最后,我们有一个列“所有者的姓氏” 注意: 我将搜索有时按类别和其他状态 在所有情况下,将使用lastname进行搜索。 我将始终对类别/状态执行精确匹配,但从姓氏开始。 常见查询的示例: SELECT * FROM fruit_table WHERE category='BANANA' and last_name LI

假设我们有一个水果,有大量的读取,但也有插入,虽然几乎没有更新或删除

我们有两列存储具有少量选项的值。比如类别[香蕉、苹果、橘子或梨]和状态[完成、进行中、变质、破坏或正常]。
最后,我们有一个列“所有者的姓氏”


注意:
我将搜索有时按类别和其他状态
在所有情况下,将使用lastname进行搜索。
我将始终对类别/状态执行精确匹配,但从姓氏开始。

常见查询的示例:

SELECT * FROM fruit_table WHERE category='BANANA' and last_name LIKE 'Cool%'
SELECT * FROM fruit_table WHERE status='Spoiled'  and last_name LIKE 'Co%'
SELECT * FROM fruit_table WHERE category='BANANA' and last_name LIKE 'smith%'



我如何准备它,使我们的响应时间较短
索引是否有帮助(考虑到列中的值根本不分散)?
位图索引是否有帮助<那分区呢

最后,我对标题表示歉意,我不知道如何恰当地表述它。

  • 位图索引对数量有限的项目有很大帮助 可供选择的数量
  • 标准的b树索引(或SQL Server中的非聚集索引)可以很好地工作 用于姓氏列。
    我会先做这两件事,因为它们很简单,然后看看事情是如何运作的

过早优化通常是一种不好的做法。然而,添加索引是一种快速提高速度的方法,无需付出太多努力。有关Oracle中索引的更多信息,请阅读。

位图索引通常应在操作环境中避免使用-它们最适合数据仓库。