Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 什么是更快的延迟(列)或将光标的最后一个值保存在变量中?_Sql_Oracle - Fatal编程技术网

Sql 什么是更快的延迟(列)或将光标的最后一个值保存在变量中?

Sql 什么是更快的延迟(列)或将光标的最后一个值保存在变量中?,sql,oracle,Sql,Oracle,基本上就是问题所说的。我有这个sql select LAG(ID_ESTADO) over(order by ID_EXPEDIENTE,orden) ULTIMO_IDESTADO, LAG(ID_EXPEDIENTE) over(order by ID_EXPEDIENTE,orden) ULTIMO_EXPEDIENTE, LAG(TABLA) over(partition by ID_EXPEDIENTE order by orden) ULTIMA_TABLA, LAG(TIPO_E

基本上就是问题所说的。我有这个sql

select 
LAG(ID_ESTADO) over(order by ID_EXPEDIENTE,orden) ULTIMO_IDESTADO,
LAG(ID_EXPEDIENTE) over(order by ID_EXPEDIENTE,orden) ULTIMO_EXPEDIENTE,
LAG(TABLA) over(partition by ID_EXPEDIENTE order by orden) ULTIMA_TABLA,
LAG(TIPO_ESTADO) over(partition by ID_EXPEDIENTE order by orden) ULTIMO_ESTADO,
LAG(FECHA_ESTADO) over(partition by ID_EXPEDIENTE order by orden) ULTIMA_FECHA,
LAG(ID_EXPEDIENTE,2) over(order by ID_EXPEDIENTE,orden) INMANT_EXPEDIENTE,
LAG(TABLA,2) over(partition by ID_EXPEDIENTE order by orden) INMANT_TABLA,
LAG(TIPO_ESTADO,2) over(partition by ID_EXPEDIENTE order by orden) INMANT_ESTADO,
ID_ESTADO,
ID_EXPEDIENTE,
TABLA,
TIPO_ESTADO,
orden,
anio,
fecha_estado,
NUMERO_EXPEDIENTE,
ANIO_EXPEDIENTE,
NATURALEZA_EXPEDIENTE, 
ID_OFICINA,
DESCRIPCION,
ID_TIPO_INSTANCIA, 
ID_OBJETO_JUICIO,
DESC_OBJETO_JUICIO,
FECHA_INICIO,
ID_EXPEDIENTE_ORIGEN,
CARATULA_EXPEDIENTE
from EST_ESTADOS_CIVIL e where TABLA like 'R%' and ANIO between 2012 and 
2016
我想知道,如果将像这样的游标中的值与TIPO_ESTADO=ULTIMO_ESTADO进行比较,速度会更快

或者单独使用查询,从变量中获取滞后值并进行比较

请记住,更改此选项会将我的查询从280.000行左右更改为300万行


我可以保留280.000行,但我至少需要包含一个或两个滞后列

与所有关于性能的问题一样,您可以测试代码,看看哪个更好

对于我的观点,我甚至不考虑使用光标来进行表演。数据中基于集合的操作应该更好


注意:如果您确实使用了游标,则需要一个
order by
,这很可能会扼杀您可能认为会获得的任何预期性能提升。

与所有有关性能的问题一样,您可以测试代码,看看哪一个更好

对于我的观点,我甚至不考虑使用光标来进行表演。数据中基于集合的操作应该更好


注意:如果您确实使用游标,您将需要一个order by,这很可能会扼杀您可能认为会获得的任何预期性能提升。

您的问题相当于以下内容(除非我遗漏了什么):我是否最好使用游标来实现我自己版本的LAG(),等等。,还是Oracle本机实现更好?(我对这个问题正确答案的看法故意不包括在这里。)你的问题相当于以下内容(除非我遗漏了什么):我最好使用游标等实现我自己版本的LAG(),还是Oracle本机实现更好?(我对这个问题正确答案的意见故意不包括在这里。)