Utilizar otro prefijo en vez de sp_

05/09/2003 - 09:44 por Mauricio Sthandier R. | Informe spam
En una presentación leí que no es conveniente prefijar los procedimientos
con sp_, ya que 'esos' SQL Server tiende a buscarlos en la base master. Son
unas milésimas de segundo... pero esas milésimas más 990 hacen un segundo
:).

Quisiera hacer otra consulta de optimización... al colocar un join de tipo :
tabla_a INNER JOIN tabla_b, afecta en algo colocar un campo de una tabla en
vez del otro al igualar ?

Es lo mismo ON tabla_a.codigo = tabla_b.codigo que ON tabla_b.codigo tabla_a.codigo ?
(Ya sé que tengo que colocar la tabla con probabilidad de menos registros a
la izquierda del Join)

Existe alguna forma más directa de determinar si una tabla es temporal ?
Actualmente consulto tempdb..sysobjects por tablas de tipo 'U'... sé que
existe OBJECTPROPERTY pero no he podido encontrar la propiedad de
temporalidad. 'TableIsFake' pareciera ser pero no sé si se refiere a otro
tipo de tablas.

Fear
is temporary.
Pride
is forever.
 

Leer las respuestas

#1 Mariano Alvarez
05/09/2003 - 21:20 | Informe spam
Te sugiero que no uses sp_ para tus stored procedures.

Es exactamente lo mismo A=B que B=A ya que el optimizador esta basado en
costos y usa las estadisticas que tiene o algunas heuristica por lo que
deberia elegir el mismo camino de resolucion. Tambien en ocasiones utiliza
por ejemplo la simplificacion de transitividades, etc, por lo que es
bastante mas sofisticado de lo que imaginas.

Por si te interesa el tema te paso un par de ejemplos de papers de Surajit
Chaudhuri y Vivek Narasayya de microsoft Research relacionados con
performance

http://citeseer.nj.nec.com/chaudhur...rview.html
http://citeseer.nj.nec.com/chaudhur...cient.html

Suerte

Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Mauricio Sthandier R." <mauricio@@sthandier.net> wrote in message
news:
En una presentación leí que no es conveniente prefijar los procedimientos
con sp_, ya que 'esos' SQL Server tiende a buscarlos en la base master.


Son
unas milésimas de segundo... pero esas milésimas más 990 hacen un segundo
:).

Quisiera hacer otra consulta de optimización... al colocar un join de tipo


:
tabla_a INNER JOIN tabla_b, afecta en algo colocar un campo de una tabla


en
vez del otro al igualar ?

Es lo mismo ON tabla_a.codigo = tabla_b.codigo que ON tabla_b.codigo > tabla_a.codigo ?
(Ya sé que tengo que colocar la tabla con probabilidad de menos registros


a
la izquierda del Join)

Existe alguna forma más directa de determinar si una tabla es temporal ?
Actualmente consulto tempdb..sysobjects por tablas de tipo 'U'... sé que
existe OBJECTPROPERTY pero no he podido encontrar la propiedad de
temporalidad. 'TableIsFake' pareciera ser pero no sé si se refiere a otro
tipo de tablas.

Fear
is temporary.
Pride
is forever.




Preguntas similares