我们有一个只有2周数据的交易数据库和另一个保存超过2周数据的存档数据库。两个DB共享相同的模式结构,并且位于不同的服务器中。我们有一个报告应用程序,它从这两个数据库中查询数据,用户通过下拉选择选择要查询的数据库。为了改善用户体验,我们正在考虑通过在背景中使DB选择透明来取消下拉选择。以下是我们想到的几个选项
由于数据量越来越多,我们对我们的选择感到担忧。 如果有人对如何处理此问题有任何其他建议,请感谢。
答案 0 :(得分:0)
在我看来,最好的两个选择是:
当您拥有大型数据集时,所有数据都会效率低下。
但是,如果您想加强自主权并保护用户的工作(用户界面中的两个重要设计原则),那么您必须让用户配置所需的相对时间或数据项。或者您也可以让用户在特定情况下浏览所有/旧数据(例如,使用特殊窗口,分页系统,特定界面或完全新的用例)。
让我们看两个例子。 (我假设用户正在使用最新数据查询服务器,而OLD是您用来引用服务器的dblink的名称,其中包含两周以上的数据。我还假设目标表名为DATATABLE,列为日期被称为DATADATE)。
要检索过去三个月(第一选择):
SELECT * FROM DATATABLE
UNION ALL
SELECT * FROM DATATABLE@OLD WHERE MONTHS_BETWEEN(SYSDATE, DATADATE) >= 3;
并且,要检索最后250行(第二选择):
SELECT *
FROM (SELECT * FROM DATATABLE ORDER BY DATADATE DESC)
WHERE ROWNUM <= 250;
UNION ALL
SELECT *
FROM (SELECT * FROM DATATABLE@OLD ORDER BY DATADATE DESC)
WHERE ROWNUM <= (250 - (SELECT COUNT(*) FROM DATATABLE));