tag:blogger.com,1999:blog-4063906708258638821.post5411175212079010871..comments2022-12-27T09:54:27.671-03:00Comments on El Blog de Leonardo Horikian: Diferencias entre COUNT(1) y COUNT(*) - Parte 1Leonardo Horikianhttp://www.blogger.com/profile/15192319884550377591noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-4063906708258638821.post-71888858251407623892012-02-02T04:24:33.400-03:002012-02-02T04:24:33.400-03:00Hola Pablo Moreno,
Lo que mencionás NO es cierto;...Hola Pablo Moreno,<br /><br />Lo que mencionás NO es cierto; es sólo un mito muy antiguo. <br /><br />Voy a mostrarte que esto que mencionás no es cierto con un simple ejemplo:<br /><br /><br />SQL> CREATE TABLE tbl_prueba (id NUMBER);<br /><br />Table created.<br /><br />SQL> CREATE OR REPLACE PROCEDURE prc_prueba<br />IS<br />vCount NUMBER;<br />BEGIN<br />SELECT COUNT(*) INTO vCount FROM tbl_prueba;<br />END;<br />/<br /><br />Procedure created.<br /><br />SQL> SELECT status FROM dba_objects WHERE object_name='PRC_PRUEBA';<br /><br />STATUS<br />-------<br />VALID<br /><br />SQL> ALTER TABLE tbl_prueba ADD nombre VARCHAR2(40);<br /><br />Table altered.<br /><br />SQL> SELECT status FROM dba_objects WHERE object_name='PRC_PRUEBA';<br /><br />STATUS<br />-------<br />VALID<br /><br /><br />En este ejemplo lo que hice fue crear una tabla con una columna y un procedimiento que realiza un count(*) sobre la tabla. Luego procedí a verificar el estado del procedimiento para asegurarme de que se encuentre en estado válido.<br />Por último agregué una columna más a la tabla y comprobé que el procedimiento siga estando en estado válido.<br /><br />SaludosLeonardo Horikianhttps://www.blogger.com/profile/15192319884550377591noreply@blogger.comtag:blogger.com,1999:blog-4063906708258638821.post-78215252930361726022011-03-29T12:27:21.165-03:002011-03-29T12:27:21.165-03:00Hola, no se si todavía den soporte a este blog... ...Hola, no se si todavía den soporte a este blog... había escuchado algo de que si en un SP hay una sentencia con un count(*) y se realiza una alteración sobre esta tabla (ejemplo eliminarle una columna)esto causa que se descompile el paquete o el SP...no se si sea cierto, pero de ser así, entonces sería mas eficiente usar el count(1) para que no descompile. SaludosPablo Morenohttps://www.blogger.com/profile/10303800231206669893noreply@blogger.comtag:blogger.com,1999:blog-4063906708258638821.post-9998497310669568772008-02-25T12:01:00.000-02:002008-02-25T12:01:00.000-02:00Hola, no logro entender tu pregunta. Podrías expli...Hola, no logro entender tu pregunta. Podrías explicarla más en detalle? Saludos.Leonardo Horikianhttps://www.blogger.com/profile/15192319884550377591noreply@blogger.comtag:blogger.com,1999:blog-4063906708258638821.post-34705994620160974842008-02-25T11:55:00.000-02:002008-02-25T11:55:00.000-02:00Hola Leonardo, primero muchas felicidades por el a...Hola Leonardo, primero muchas felicidades por el apoyo y compartir tus conocimientos, la verdad yo tambien tenia esa incognita...pero ahora veo q no hay diferencia entre las dos instrucciones. Pero tenia otra duda espero que me la puedas despejar es algo similar "Cual la diferencia entre una tabla generada con una consulta SQL y una tabla generada con una vista"Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4063906708258638821.post-30192123700411279392008-02-25T11:51:00.000-02:002008-02-25T11:51:00.000-02:00Hola Leonardo, primero muchas felicidades por el a...Hola Leonardo, primero muchas felicidades por el apoyo y compartir tus conocimientos, la verdad yo tambien tenia esa incognita...pero ahora veo q no hay diferencia entre las dos instrucciones. Pero tenia otra duda espero que me la puedas despejar es algo similar "Cual la diferencia entre una tabla generada con una consulta SQL y una tabla generada con una vista"Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4063906708258638821.post-53391986761719445952008-02-20T17:57:00.000-02:002008-02-20T17:57:00.000-02:00Hola, no se donde leíste eso, pero es muy raro que...Hola, no se donde leíste eso, pero es muy raro que SELECT DISTINCT 1 FROM X WHERE xxx; sea más eficiente que hacer un COUNT(*). Sinceramente no le veo sentido el hacer un DISTINCT; por otro lado, el DISTINCT realiza un Sort que consume memoria y/o disco, en cambio el COUNT no realiza ningún tipo de sort. Sería conveniente que hagas una prueba utilizando las 2 alternativas (la que yo propongo y la que vos me mencionas) y veas mediante un AUTOTRACE las diferencias entre ambas.Leonardo Horikianhttps://www.blogger.com/profile/15192319884550377591noreply@blogger.comtag:blogger.com,1999:blog-4063906708258638821.post-20036672989778243372008-02-19T15:57:00.000-02:002008-02-19T15:57:00.000-02:00Hola Leonardo, muy interesante artículo. Te queria...Hola Leonardo, muy interesante artículo. Te queria consultar algo que lei en Internet y queria tu opinión. Es sobre el tema de comprobar si existen registros para cierta condición, donde usan la siguiente sentencia: SELECT DISTINCT 1 FROM X WHERE xxx; y mencionan que es más efectivo que realizar SELECT COUNT(*) FROM X WHERE xxx. GraciasAnonymousnoreply@blogger.com