NEWSEQUENTIALID (Transact-SQL)
Berlaku untuk: SQL Server
Azure SQL Database
Azure 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.
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. Contohnya:
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.