即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的
统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
在
数据仓库领域有一个概念叫
Ad hoc queries,中文一般翻译为“即席查询”。即席查询是指那些用户在使用系统时,根据自己当时的需求定义的查询。
一般的数据展现工具都会提供即席查询的功能。通常的方式是,将数据仓库中的
维度表和事实表映射到
语义层,用户可以通过语义层选择表,建立表间的关联,最终生成SQL语句。即席查询与通常查询从SQL语句上来说,并没有本质的差别。它们之间的差别在于,通常的查询在
系统设计和实施时是已知的,所以我们可以在
系统实施时通过建立索引、分区等技术来优化这些查询,使这些查询的效率很高。而即席查询是用户在使用时临时生产的,系统无法预先优化这些查询,所以即席查询也是评估数据仓库的一个重要指标。即席查询的位置通常是在关系型的数据仓库中,即在EDW或者
ROLAP中。
多维数据库有自己的存储方式,对即席查询和通常查询没有区别。在一个
数据仓库系统中,即席查询使用的越多,对数据仓库的要求就越高,对
数据模型的
对称性的要求也越高。对称性的数据模型对所有的查询都是相同的,这也是
维度建模的一个优点。