Have you actually tried that? Be advised that it might suck depending on your version. A cube with 12 dimensions returns a mere 4096 rows (discussion is regarding millions). Compare times for 8i, 9.2 and 10g below...
Code:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
JServer Release 8.1.7.4.0 - Production
SQL> SET TIMING ON;
SQL> SELECT COUNT (*)
2 FROM (SELECT 1
3 FROM dual
4 GROUP BY CUBE (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
COUNT(*)
----------
4096
Elapsed: 00:00:00.00
SQL>
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production
SQL> SET TIMING ON;
SQL> SELECT COUNT (*)
2 FROM (SELECT 1
3 FROM dual
4 GROUP BY CUBE (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
COUNT(*)
----------
4096
Elapsed: 00:00:52.09
SQL>
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> SET TIMING ON;
SQL> SELECT COUNT (*)
2 FROM (SELECT 1
3 FROM dual
4 GROUP BY CUBE (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
COUNT(*)
----------
4096
Elapsed: 00:01:34.07
SQL>
Once the table is created, you can use insert into the random_table by selecting rows from the same table. Or you can use dbms_random.string within the select in the insert statement.
Bookmarks