在数据库中的视图列中搜索

时间:2016-07-21 15:10:53

标签: c# sql oracle

我有一个我通过加入几个表格创建的视图,其记录可以更改,因此视图列的内容也可以更改 。 视图的列包含地址,随机数,日期,一些随机字符串等数据。

我接受来自用户的搜索文本,如果其中任何一列包含用户输入的文字,则返回行。

我的观点有数百万条记录如此正常,如查询无法工作(需要很长时间)? 搜索此视图的最有效方法是更改,因为其表格已更改

我使用的是oracle数据库,C#,entityframework。

1 个答案:

答案 0 :(得分:1)

为了获得更好的性能,你应该在原始表中正确添加索引。每次更改时rdbms引擎都会自动刷新这些索引..所以你不可能通过索引值获取错误的数据..索引值和表数据包含相同的值..

您不需要每次重新索引...有时(每月)您可以更新相关的统计信息..

所以索引可以更好地改变你的表现..这也适用于视图

创建在原始表顶部的视图,并且不是原始表的存储副本..因此索引可以帮助视图更快地呈现预期结果..

索引正确设计索引时,在数据库服务器中用于重要目的:

他们让rdbms

  • 查找相邻行的组而不是单行。
  • 通过按所需顺序读取行来避免排序。
  • 让服务器单独(或有时)从索引中满足(有时)整个查询,避免(如果可能)根本需要访问该表。

来自mysql https://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html

https://dev.mysql.com/doc/refman/5.5/en/column-indexes.html https://dev.mysql.com/doc/refman/5.5/en/multiple-column-indexes.html

http://code.tutsplus.com/tutorials/top-20-mysql-best-practices--net-7855

http://use-the-index-luke.com