¿como evitar los hot blocks?

04/05/2008 - 18:38 por AntonioFox | Informe spam
¿Que tal?

Estaba traspasando una clasica tabla de contadores (donde llevo contador
de facturas, documentos de venta, pedidos ...) a SQL Server y leo que
esta practica no es recomendada por el problema de los hot blocks

Entonses ¿que me recomienda para no tener el problema de los hot blocks
y como hago para tambien tener mis contadores? No me valen identities ya
que nesecito que me genere numeros realez

Gracias

AntonioFox

Preguntas similare

Leer las respuestas

#6 Alfredo Novoa
05/05/2008 - 13:07 | Informe spam
On Sun, 4 May 2008 21:00:56 -0430, "Leonardo Azpurua" <l e o n a r d o
[arroba] m v p s [punto] o r g> wrote:

En cualquier caso, no seria INSERT INTO Tabla ... SELECT COALESCE(MAX(Id),
0) + 1? :)



Si, claro.


Saludos
Respuesta Responder a este mensaje
#7 Alejandro Mesa
05/05/2008 - 15:18 | Informe spam
AntonioFox,

Ve si puedes sacar algo productivo de este post.

http://www.microsoft.com/communitie...sloc=en-us


AMB


"AntonioFox" wrote:

¿Que tal?

Estaba traspasando una clasica tabla de contadores (donde llevo contador
de facturas, documentos de venta, pedidos ...) a SQL Server y leo que
esta practica no es recomendada por el problema de los hot blocks

Entonses ¿que me recomienda para no tener el problema de los hot blocks
y como hago para tambien tener mis contadores? No me valen identities ya
que nesecito que me genere numeros realez

Gracias

AntonioFox

Respuesta Responder a este mensaje
#8 Maxi
05/05/2008 - 15:53 | Informe spam
Hola Antonio, a mi me parece correcto usar la tabla numeradora y los
bloqueos, a la larga es lo mas eficiente que podes hacer y seguro. Si haces
un Max sobre la tabla y esta tiene millones de registros no va a ser tan
rapido como hacer un update sobre la tabla numeradora de unos pocos
registros.

Aca te paso el link a mi blog donde hace poco publique un articulo de como
numerar (no expuse el Max porque se descarta en la mayoria de las
aplicaciones por el costo a nivel performance que tiene eso, ademas de que
estarias haciendo un select y si dos hacen el mismo Max y no consideras
otras cosas a nivel bloqueo podria darles el mismo numero)


http://msmvps.com/blogs/maxiaccotto/

-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"AntonioFox" <antoniofox> escribió en el mensaje
news:
¿Que tal?

Estaba traspasando una clasica tabla de contadores (donde llevo contador
de facturas, documentos de venta, pedidos ...) a SQL Server y leo que esta
practica no es recomendada por el problema de los hot blocks

Entonses ¿que me recomienda para no tener el problema de los hot blocks y
como hago para tambien tener mis contadores? No me valen identities ya que
nesecito que me genere numeros realez

Gracias

AntonioFox
Respuesta Responder a este mensaje
#9 Alfredo Novoa
05/05/2008 - 16:01 | Informe spam
Hola Maxi,

On Mon, 5 May 2008 10:53:28 -0300, "Maxi"
wrote:

Hola Antonio, a mi me parece correcto usar la tabla numeradora y los
bloqueos, a la larga es lo mas eficiente que podes hacer y seguro. Si haces
un Max sobre la tabla y esta tiene millones de registros no va a ser tan
rapido como hacer un update sobre la tabla numeradora de unos pocos
registros.



¿Por que?

Para eso están los índices.

aplicaciones por el costo a nivel performance que tiene eso, ademas de que
estarias haciendo un select y si dos hacen el mismo Max y no consideras
otras cosas a nivel bloqueo podria darles el mismo numero)



¿Que más habría que considerar?



Saludos
Respuesta Responder a este mensaje
#10 Gux (MVP)
05/05/2008 - 16:50 | Informe spam
"Alfredo Novoa" wrote:

wrote:

>Hola Antonio, a mi me parece correcto usar la tabla numeradora y los
>bloqueos, a la larga es lo mas eficiente que podes hacer y seguro. Si haces
>un Max sobre la tabla y esta tiene millones de registros no va a ser tan
>rapido como hacer un update sobre la tabla numeradora de unos pocos
>registros.

¿Por que?

Para eso están los índices.



Exacto.

Si hay una consulta que usa funciones agregadas (mi libre traducción de
"aggregate" :-)) considerar el uso de un índice no-clustered. Estos índices
incluyen una fila con el valor de índice para cálculos agregados, por lo que
SQL Server no necesita acceder a la tabla real para hacer el cálculo de la
función.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Alfredo Novoa" wrote:


Hola Maxi,

On Mon, 5 May 2008 10:53:28 -0300, "Maxi"
wrote:

>Hola Antonio, a mi me parece correcto usar la tabla numeradora y los
>bloqueos, a la larga es lo mas eficiente que podes hacer y seguro. Si haces
>un Max sobre la tabla y esta tiene millones de registros no va a ser tan
>rapido como hacer un update sobre la tabla numeradora de unos pocos
>registros.

¿Por que?

Para eso están los índices.

>aplicaciones por el costo a nivel performance que tiene eso, ademas de que
>estarias haciendo un select y si dos hacen el mismo Max y no consideras
>otras cosas a nivel bloqueo podria darles el mismo numero)

¿Que más habría que considerar?



Saludos

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida