Bagikan melalui


NEWSEQUENTIALID (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Membuat GUID yang lebih besar dari GUID yang sebelumnya dihasilkan oleh fungsi ini pada komputer tertentu sejak Windows dimulai. Setelah memulai ulang Windows, GUID dapat dimulai lagi dari rentang yang lebih rendah, tetapi masih unik secara global. Saat kolom GUID digunakan sebagai pengidentifikasi baris, menggunakan NEWSEQUENTIALID bisa lebih cepat daripada menggunakan fungsi NEWID. Ini karena fungsi NEWID menyebabkan aktivitas acak dan menggunakan lebih sedikit halaman data yang di-cache. Menggunakan NEWSEQUENTIALID juga membantu mengisi sepenuhnya data dan halaman indeks.

Penting

Jika privasi menjadi perhatian, jangan gunakan fungsi ini. Dimungkinkan untuk menebak nilai GUID yang dihasilkan berikutnya dan, oleh karena itu, mengakses data yang terkait dengan GUID tersebut.

NEWSEQUENTIALID adalah pembungkus atas fungsi Windows UuidCreateSequential , dengan beberapa pengacakan byte diterapkan.

Peringatan

Fungsi UuidCreateSequential memiliki dependensi perangkat keras. Di SQL Server, kluster nilai berurutan dapat berkembang ketika database (seperti database yang terkandung) dipindahkan ke komputer lain. Saat menggunakan Always On dan di SQL Database, kluster nilai berurutan dapat berkembang jika database gagal ke komputer lain.

Konvensi sintaks transact-SQL

Sintaksis

NEWSEQUENTIALID ( )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Jenis Hasil

pengidentifikasi unik

Keterangan

NEWSEQUENTIALID() hanya dapat digunakan dengan batasan DEFAULT pada kolom tabel jenis uniqueidentifier. Misalnya:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID());   

Ketika NEWSEQUENTIALID() digunakan dalam ekspresi DEFAULT, itu tidak dapat dikombinasikan dengan operator skalar lainnya. Misalnya, Anda tidak dapat menjalankan hal berikut:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT dbo.myfunction(NEWSEQUENTIALID()));  

Dalam contoh sebelumnya, myfunction() adalah fungsi skalar yang ditentukan pengguna yang menerima dan mengembalikan uniqueidentifier nilai.

NEWSEQUENTIALID tidak dapat direferensikan dalam kueri.

Anda dapat menggunakan NEWSEQUENTIALID untuk menghasilkan GUID untuk mengurangi pemisahan halaman dan IO acak pada tingkat daun indeks.

Setiap GUID yang dihasilkan dengan menggunakan NEWSEQUENTIALID unik di komputer tersebut. GUID yang dihasilkan dengan menggunakan NEWSEQUENTIALID unik di beberapa komputer hanya jika komputer sumber memiliki kartu jaringan.

Lihat Juga

NEWID (Transact-SQL)
Operator Perbandingan (Transact-SQL)