Oracle 这个materialise使用了一个临时表,我认为这意味着可以进一步访问它。我将使用临时表重新编写。GTT能否解决“上下文切换”瓶颈?不确定一个光标被替换后会有多大不同。除非同一个游标被打开并多次迭代,否则我想。@AlexPoole确实不会,但只要OP没有

Oracle 这个materialise使用了一个临时表,我认为这意味着可以进一步访问它。我将使用临时表重新编写。GTT能否解决“上下文切换”瓶颈?不确定一个光标被替换后会有多大不同。除非同一个游标被打开并多次迭代,否则我想。@AlexPoole确实不会,但只要OP没有,oracle,oracle10g,Oracle,Oracle10g,这个materialise使用了一个临时表,我认为这意味着可以进一步访问它。我将使用临时表重新编写。GTT能否解决“上下文切换”瓶颈?不确定一个光标被替换后会有多大不同。除非同一个游标被打开并多次迭代,否则我想。@AlexPoole确实不会,但只要OP没有提供足够的细节来解决他的整体性能问题,我的回答主要是澄清与混淆。为了清楚起见,一个公共表表达式(with子句)实际上并不创建临时表本身,但它可以将结果集写入临时段,方式与全局临时表写入临时段的方式相同。很抱歉,缺少额外的详细信息。我“继承”的剧


这个materialise使用了一个临时表,我认为这意味着可以进一步访问它。我将使用临时表重新编写。GTT能否解决“上下文切换”瓶颈?不确定一个光标被替换后会有多大不同。除非同一个游标被打开并多次迭代,否则我想。@AlexPoole确实不会,但只要OP没有提供足够的细节来解决他的整体性能问题,我的回答主要是澄清
混淆。为了清楚起见,一个公共表表达式(with子句)实际上并不创建临时表本身,但它可以将结果集写入临时段,方式与全局临时表写入临时段的方式相同。很抱歉,缺少额外的详细信息。我“继承”的剧本非常混乱,我无法完全或部分地发布。我希望GTT将减少一点瓶颈。理想情况下,我会重新写很多,但这应该是最后一次使用它,所以它不值得的时间。谢谢你的意见。
   WITH MyData AS
   (
      SELECT * FROM People WHERE Age < 60;
   )
   SELECT * FROM MyData
WITH MyData AS
   (
      SELECT * FROM People WHERE Age < 60;
   )
   SELECT * FROM MyData WHERE AGE = 10
   UNION ALL
   SELECT * FROM MyData WHERE AGE = 20