Que es mas eficiente?

13/01/2007 - 16:38 por Ana Zuluaga | Informe spam
Que es mas eficiente en el proceso de borrar un registro en una tabla?:

Preguntar si la pk existe antes del DELETE o simplemente ejecutar el DELETE
sin preguntar (claro con el where correspondiente).

o sea:

a) IF (SELECT PK FROM TABLA WHERE PK=@PK)
DELETE TABLA WHERE PK=@PK

o

b) DELETE TABLA WHERE PK=@PK /*si no existe no borrara nada*/

Preguntas similare

Leer las respuestas

#6 Alfredo Crisostomo
17/01/2007 - 04:05 | Informe spam
Y para el caso especifico o mas frecuente de que no existan los registros a
borrar para la condicion, cual sería la mas eficiente?

Dicho de otra forma, un select es igual de rapido que un delete, que ninguno
de los dos devuelva ninguna fila procesada?


"Alejandro Mesa" escribió en el
mensaje news:
Ana,

Si te refieres a las operaciones de I/O pues logicamente el segundo puesto
que accesara a la tabla una sola vez.


AMB

"Ana Zuluaga" wrote:

Que es mas eficiente en el proceso de borrar un registro en una tabla?:

Preguntar si la pk existe antes del DELETE o simplemente ejecutar el
DELETE
sin preguntar (claro con el where correspondiente).

o sea:

a) IF (SELECT PK FROM TABLA WHERE PK=@PK)
DELETE TABLA WHERE PK=@PK

o

b) DELETE TABLA WHERE PK=@PK /*si no existe no borrara nada*/






Respuesta Responder a este mensaje
#7 Carlos Sacristan
17/01/2007 - 12:49 | Informe spam
Es lo mismo: al motor le va a costar lo mismo encontrar el registro para
luego operar con él (ya sea para devolver los datos o para borrarlo)


"Alfredo Crisostomo" escribió en el mensaje
news:
Y para el caso especifico o mas frecuente de que no existan los registros a
borrar para la condicion, cual sería la mas eficiente?

Dicho de otra forma, un select es igual de rapido que un delete, que
ninguno de los dos devuelva ninguna fila procesada?


"Alejandro Mesa" escribió en el
mensaje news:
Ana,

Si te refieres a las operaciones de I/O pues logicamente el segundo
puesto
que accesara a la tabla una sola vez.


AMB

"Ana Zuluaga" wrote:

Que es mas eficiente en el proceso de borrar un registro en una tabla?:

Preguntar si la pk existe antes del DELETE o simplemente ejecutar el
DELETE
sin preguntar (claro con el where correspondiente).

o sea:

a) IF (SELECT PK FROM TABLA WHERE PK=@PK)
DELETE TABLA WHERE PK=@PK

o

b) DELETE TABLA WHERE PK=@PK /*si no existe no borrara nada*/












email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida