我有一张150万行的表.我运行一个查询,该查询获取列中具有非重复值的记录.我正在观察一种行为,在创建索引之后,查询的性能会降低.我还使用具有100%估计百分比(计算模式)的dbms_stats来收集统计信息,以便oracle 11g CBO为查询计划做出更明智的决策,但它不会改善查询执行时间.
SQL> desc tab3;
Name Null? Type
----------------------------------------------
COL1 NUMBER(38)
COL2 VARCHAR2(100)
COL3 VARCHAR2(36)
COL4 VARCHAR2(36)
COL5 VARCHAR2(4000)
COL6 VARCHAR2(4000)
MEASURE_0 VARCHAR2(4000)
MEASURE_1 VARCHAR2(4000)
MEASURE_2 VARCHAR2(4000)
MEASURE_3 VARCHAR2(4000)
MEASURE_4 VARCHAR2(4000)
MEASURE_5 VARCHAR2(4000)
MEASURE_6 VARCHAR2(4000)
MEASURE_7 VARCHAR2(4000)
MEASURE_8 VARCHAR2(4000)
MEASURE_9 VARCHAR2(4000)
Run Code Online (Sandbox Code Playgroud)
该列measure_0有40万个唯一值.
SQL> select count(*) from (select measure_0 from tab3 group by measure_0 having count(*) = 1) abc;
COUNT(*)
----------
403664
Run Code Online (Sandbox Code Playgroud)
以下是执行计划的查询,请注意表中没有索引.
SQL> set autotrace traceonly;
SQL> SELECT * FROM (
2 SELECT
3 (ROWNUM -1) AS …Run Code Online (Sandbox Code Playgroud) 我知道我们可以通过遍历所有的行,并要求获得列的最大数量getLastCellNumber每行对象..但这种方法需要循环访问所有这些我想避免,因为这将需要大量的时间,文件一百万行行(这是我期望阅读的那种文件).
当POI读取excel文件时,它会将表单维度(第一行编号,最后一行编号,第一个编号,最后一个编号)存储在DimensionsRecord类的对象中.所以,如果我得到这个对象,我会得到我需要的东西.这些对象可以从Sheet类获得,Sheet类是POI的内部类.我能够提取XLS文件所需的内容,但是我遇到了XLSX文件的障碍.
POI是否DimensionsRecord也为XLSX 维护对象?如果是,有人试图提取它吗?还是有其他一些可以做到这一点?请帮忙!
此外,我想问问,我的做法是否正确与否,也就是我使用POI的内部类(这是我的工作做完),这是正确的,或者我应该仅仅依靠公开的API(太耗时).
我正在使用Apache POI的事件API读取XLSX文件,即我通过SAX Parser读取XLSX表的内容.我想知道如何通过使用XSSF事件API获取公式的计算值.
我知道这样做的方法是使用FormulaEvaluator该类.但是,由于formulaEvaluator采用Workbook类的实例,我不想使用这种方法.(我正在阅读包含一百万行和100列的Excel文件,因此如果我创建该Excel的工作簿对象,我的应用服务器内存不足,因此我使用的是事件API)
如果没有Workbook实例,如何在事件解析中进行评估?