Subject | Re: [firebird-support] create table as select |
---|---|
Author | Richard Wesley |
Post date | 2006-07-19T17:37:39Z |
On Jul 17, 2006, at 02:09, Dimitry Sibiryakov wrote:
Not the same data admittedly, but the same structure:
select into [#temp] * from [table]
where ...
(T-SQL syntax IIRC)
If you have a huge data warehouse and the user wants to look at only
a small subset of it (e.g. one salesman for one month) it is often
much faster to extract the data into a (temporary) table in this
manner and run queries against it instead of querying the entire
warehouse with complex filters and aggregations each time the user
makes a gesture in our UI.
For Firebird, we have to implement this by querying for the filtered
data and shovelling it into a temporary database file. This allows
us to index it as well, but I believe the big engines do all that
sort of processing automagically when you use their SELECT INTO
functionality. We can do it manually because we have a lot of
metadata lying around but I can see that applications which are
simpler or which have a different focus could find the functionality
useful. Heck, we even use the functionality if it is available (i.e.
SQL Server, MySQL Oracle).
________________________________________________________
Richard Wesley Software Engineer
Tableau Software
http://www.tableausoftware.com/ hawkfish
tableausoftware com
> It is handy but it is against relation theory. Normalization! WhyIn Tableau, we do this for performance in engines that support it.
> you can want to have two tables in a database with the same structure
> and the same data?..
Not the same data admittedly, but the same structure:
select into [#temp] * from [table]
where ...
(T-SQL syntax IIRC)
If you have a huge data warehouse and the user wants to look at only
a small subset of it (e.g. one salesman for one month) it is often
much faster to extract the data into a (temporary) table in this
manner and run queries against it instead of querying the entire
warehouse with complex filters and aggregations each time the user
makes a gesture in our UI.
For Firebird, we have to implement this by querying for the filtered
data and shovelling it into a temporary database file. This allows
us to index it as well, but I believe the big engines do all that
sort of processing automagically when you use their SELECT INTO
functionality. We can do it manually because we have a lot of
metadata lying around but I can see that applications which are
simpler or which have a different focus could find the functionality
useful. Heck, we even use the functionality if it is available (i.e.
SQL Server, MySQL Oracle).
________________________________________________________
Richard Wesley Software Engineer
Tableau Software
http://www.tableausoftware.com/ hawkfish
tableausoftware com