Lorenzo Benaglia


Storie di un SQLlaro mannaro...
Home Blogs | Home | Login | Contact | My Profile | RSS | About | Cerca

XP per la generazione di GUIDs sequenziali

Giusto ieri Andrea Montanari mi ha segnalato l'ennesima Extended Stored Procedure di Gert Drapers, quest'ultima dedicata alla generazione di GUIDs sequenziali. A cosa potrebbe servire? Vediamo un esempio. La funzione NEWID() di SQL Server 2000 genera valori che sono più o meno random. Nel caso in cui si decida di definire un indice su una colonna GUID valorizzata tramite NEWID(), possono sorgere seri problemi di page splitting dato che le righe saranno inserite in modo casuale ne 
Leggi tutto il post...
Categoria: SQL Server
mercoledì, 15 giu 2005 Ore. 22.43

Scrivi un commento

Nome:
Blog:
E-Mail:
(l'indirizzo e-mail non verrà pubblicato, consente di essere avvertiti quando arrivano nuovi commenti a questo Post)
Codice:
Corpo:
Cookie:

Commenti

Autore: MarcelloInviato il: 07 lug 2005 - 11.08
Molto interessante la questione, riporto una versione casereccia del metodo che non brilla per prestazioni. Si basa su una "matrice base" e genera GUID sequenziali basati su timestamp:

create procedure pi_NewID(@ID uniqueidentifier output)
as
create table #t (timestamp)
insert into #t values(default)
select @ID=left(convert(varchar(36),convert(uniqueidentifier,convert(binary,timestamp))),19)+'B705-BE382A2CF876' from #t
go
declare @ID uniqueidentifier
exec pi_NewID @ID output
select @ID
go
drop procedure pi_NewID
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003