Oracle10g P全局临时表与普通表的性能效率-oracle 10g

Oracle10g P全局临时表与普通表的性能效率-oracle 10g,oracle10g,performance,global,temp-tables,Oracle10g,Performance,Global,Temp Tables,我使用大量全局临时表来生成针对Oracle 10g数据库的大型报告。每个报告由4到5个全球临时表(GTT)组成。但就我所理解的GTT的概念而言,数据是在每次会话中为不同的参数集动态创建的 例如,在我的场景中,20个用户为(比如)上个月的销售数据生成报告,这可能导致每天执行多达1000次。但是,如果我们假设用户更频繁地查询最新的销售数据,那么我们如何使用一些缓存来存储像internet浏览器一样更频繁地查询的一系列销售数据呢??。此外,任何其他关于微调GTT的建议都会非常有用。听起来您已经过度使用

我使用大量全局临时表来生成针对Oracle 10g数据库的大型报告。每个报告由4到5个全球临时表(GTT)组成。但就我所理解的GTT的概念而言,数据是在每次会话中为不同的参数集动态创建的


例如,在我的场景中,20个用户为(比如)上个月的销售数据生成报告,这可能导致每天执行多达1000次。但是,如果我们假设用户更频繁地查询最新的销售数据,那么我们如何使用一些缓存来存储像internet浏览器一样更频繁地查询的一系列销售数据呢??。此外,任何其他关于微调GTT的建议都会非常有用。

听起来您已经过度使用GTT了。在Oracle查询中通常不经常需要临时表,这与SQL Server不同,SQL Server(我已经读过)使用临时表更常见、更合适。如果不详细了解您的需求,很难推荐一种方法,但这是一种一次“缓存”查询结果并多次使用它们的方法。

+1。大多数情况下,我发现用于驱动报表的GTT只包含ID(例如,由用户选择的ID),然后报表将ID连接回源数据表。或者临时保留构建成本较高但被多个子报表引用的数据集。