MENGUBAH DATABASE (T-SQL)

Memodifikasi opsi konfigurasi database tertentu.

Artikel ini menyediakan sintaks, argumen, keterangan, izin, dan contoh untuk produk SQL mana pun yang Anda pilih.

Untuk informasi selengkapnya tentang konvensi sintaks, lihat Konvensi sintaks transact-SQL.

Pilih produk

Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk yang ditampilkan.

* SQL Server *  

 

Gambaran Umum: SQL Server

Di SQL Server, pernyataan ini memodifikasi database, atau file dan grup file yang terkait dengan database. ALTER DATABASE menambahkan atau menghapus file dan grup file dari database, mengubah atribut database atau file dan grup filenya, mengubah kolase database, dan mengatur opsi database. Rekam jepret database tidak dapat dimodifikasi. Untuk mengubah opsi database yang terkait dengan replikasi, gunakan sp_replicationdboption.

Karena panjangnya, ALTER DATABASE sintaksis dipisahkan ke dalam beberapa artikel.

Artikel Deskripsi
ALTER DATABASE Artikel saat ini menyediakan sintaksis dan informasi terkait untuk mengubah nama dan kolaborasi database.
UBAH Opsi File DATABASE dan Grup File Menyediakan sintaksis dan informasi terkait untuk menambahkan dan menghapus file dan grup file dari database, dan untuk mengubah atribut file dan grup file.
OPSI UBAH SET DATABASE Menyediakan sintaksis dan informasi terkait untuk mengubah atribut database dengan menggunakan opsi SET ALTER DATABASE.
MENGUBAH Pencerminan Database DATABASE Menyediakan sintaksis dan informasi terkait untuk opsi SET ALTER DATABASE yang terkait dengan pencerminan database.
MENGUBAH HADR SET DATABASE Menyediakan sintaksis dan informasi terkait untuk opsi grup ketersediaan AlwaysOn dari ALTER DATABASE untuk mengonfigurasi database sekunder pada replika sekunder grup ketersediaan AlwaysOn.
MENGUBAH tingkat kompatibilitas DATABASE Menyediakan sintaksis dan informasi terkait untuk opsi SET ALTER DATABASE yang terkait dengan tingkat kompatibilitas database.
MENGUBAH KONFIGURASI CAKUPAN DATABASE Menyediakan sintaks yang terkait dengan konfigurasi tercakup database yang digunakan untuk pengaturan tingkat database individual seperti pengoptimalan kueri dan perilaku terkait eksekusi kueri.

Sintaks

-- SQL Server Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>
  | SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<file_and_filegroup_options>::=
  <add_or_modify_files>::=
  <filespec>::=
  <add_or_modify_filegroups>::=
  <filegroup_updatability_option>::=

<option_spec>::=
{
  | <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | <FILESTREAM_options>
  | <HADR_options>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}

Argumen

database_name

Adalah nama database yang akan dimodifikasi.

Catatan

Opsi ini tidak tersedia dalam Database Termuat.

CURRENT
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

Menunjuk bahwa database saat ini yang digunakan harus diubah.

UBAH NAMA = new_database_name

Mengganti nama database dengan nama yang ditentukan sebagai new_database_name.

MENYUSUN collation_name

Menentukan kolatasi untuk database. collation_name bisa berupa nama kolase Windows atau nama kolase SQL. Jika tidak ditentukan, database diberi kolase instans SQL Server.

Catatan

Kolase tidak dapat diubah setelah database dibuat di Azure SQL Database.

Saat membuat database dengan selain kolase default, data dalam database selalu menghormati kolase yang ditentukan. Untuk SQL Server, saat membuat database mandiri, informasi katalog internal dipertahankan menggunakan kolase default SQL Server, Latin1_General_100_CI_AS_WS_KS_SC.

Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, lihat COLLATE.

<> delayed_durability_option ::=

Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

Untuk informasi selengkapnya, lihat OPSI ALTER DATABASE SET dan Kontrol Durabilitas Transaksi.

<>file_and_filegroup_options::=

Untuk informasi selengkapnya, lihat OPSI UBAH File DATABASE dan Grup File.

Keterangan

Untuk menghapus database, gunakan DROP DATABASE.

Untuk mengurangi ukuran database, gunakan DBCC SHRINKDATABASE.

Pernyataan ALTER DATABASE harus berjalan dalam mode penerapan otomatis (mode manajemen transaksi default) dan tidak diizinkan dalam transaksi eksplisit atau implisit.

Status file database (misalnya, online atau offline), dipertahankan secara independen dari status database. Untuk informasi selengkapnya, lihat Status File. Status file dalam grup file menentukan ketersediaan seluruh grup file. Agar grup file tersedia, semua file dalam grup file harus online. Jika grup file offline, setiap upaya untuk mengakses grup file oleh pernyataan SQL gagal dengan kesalahan. Saat Anda membuat rencana kueri untuk pernyataan SELECT, pengoptimal kueri menghindari indeks non-klusster dan tampilan terindeks yang berada di grup file offline. Ini memungkinkan pernyataan ini berhasil. Namun, jika grup file offline berisi tumpukan atau indeks terkluster dari tabel target, pernyataan SELECT gagal. Selain itu, pernyataan , UPDATE, atau DELETE apa pun INSERTyang memodifikasi tabel dengan indeks apa pun dalam grup file offline gagal.

Saat database berada dalam status PEMULIHAN, sebagian besar ALTER DATABASE pernyataan gagal. Pengecualian mengatur opsi pencerminan database. Database mungkin dalam status PEMULIHAN selama operasi pemulihan aktif atau ketika operasi pemulihan database atau file log gagal karena file cadangan yang rusak.

Cache paket untuk instans SQL Server dibersihkan dengan mengatur salah satu opsi berikut.

  • COLLATE
  • UBAH FILEGROUP DEFAULT
  • UBAH fileGROUP READ_ONLY
  • UBAH fileGROUP READ_WRITE
  • MODIFY_NAME
  • OFFLINE
  • ONLINE
  • PAGE_VERIFY
  • READ_ONLY
  • BACA_TULIS

Menghapus cache rencana menyebabkan kompilasi ulang semua rencana eksekusi berikutnya dan dapat menyebabkan penurunan performa kueri secara tiba-tiba dan sementara. Untuk setiap cachestore yang dihapus dalam cache paket, log kesalahan SQL Server berisi pesan informasi berikut: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Pesan ini dicatat setiap lima menit selama cache dihapus dalam interval waktu tersebut.

Cache paket juga dihapus dalam skenario berikut:

  • Database memiliki opsi database yang AUTO_CLOSE diatur ke AKTIF. Ketika tidak ada referensi koneksi pengguna atau menggunakan database, tugas latar belakang mencoba menutup dan mematikan database secara otomatis.
  • Anda menjalankan beberapa kueri terhadap database yang memiliki opsi default. Kemudian, database dihilangkan.
  • Rekam jepret database untuk database sumber dihilangkan.
  • Anda berhasil membangun kembali log transaksi untuk database.
  • Anda memulihkan cadangan database.
  • Anda melepas database.

Mengubah kolacek database

Sebelum Anda menerapkan kolatasi yang berbeda ke database, pastikan bahwa kondisi berikut ini ada di tempat:

  • Anda adalah satu-satunya yang saat ini menggunakan database.
  • Tidak ada objek yang terikat skema tergantung pada kolate database.

Jika objek berikut, yang bergantung pada kolate database, ada di database, ALTER DATABASE database_name COLLATE pernyataan gagal. SQL Server mengembalikan pesan kesalahan untuk setiap objek yang ALTER memblokir tindakan:

  • Fungsi dan tampilan yang ditentukan pengguna yang dibuat dengan SCHEMABINDING
  • Kolom komputasi
  • Batasan CHECK
  • Fungsi bernilai tabel yang mengembalikan tabel dengan kolom karakter dengan kolase yang diwarisi dari kolase database default

Informasi dependensi untuk entitas yang tidak terikat skema secara otomatis diperbarui saat kolate database diubah.

Mengubah kolatasi database tidak membuat duplikat di antara nama sistem apa pun untuk objek database. Jika nama duplikat dihasilkan dari kolamen yang diubah, namespace berikut dapat menyebabkan kegagalan perubahan kolamen database:

  • Nama objek seperti prosedur, tabel, pemicu, atau tampilan
  • Nama skema
  • Prinsipal seperti grup, peran, atau pengguna
  • Nama jenis skalar seperti jenis sistem dan yang ditentukan pengguna
  • Nama katalog teks lengkap
  • Nama kolom atau parameter dalam objek
  • Nama indeks dalam tabel

Nama duplikat yang dihasilkan dari kolase baru menyebabkan tindakan perubahan gagal, dan SQL Server mengembalikan pesan kesalahan yang menentukan namespace tempat duplikat ditemukan.

Menampilkan informasi database

Anda dapat menggunakan tampilan katalog, fungsi sistem, dan prosedur tersimpan sistem untuk mengembalikan informasi tentang database, file, dan grup file.

Izin

ALTER Memerlukan izin pada database.

Contoh

J. Mengubah nama database

Contoh berikut mengubah nama database menjadi AdventureWorks2022Northwind.

USE master;
GO
ALTER DATABASE AdventureWorks2022
Modify Name = Northwind ;
GO

B. Mengubah kolatasi database

Contoh berikut membuat database bernama testdb dengan SQL_Latin1_General_CP1_CI_AS kolas, lalu mengubah kolatasi testdb database menjadi COLLATE French_CI_AI.

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO

* SQL Database *  

 

Gambaran Umum: SQL Database

Di Azure SQL Database, gunakan pernyataan ini untuk mengubah database. Gunakan pernyataan ini untuk mengubah nama database, mengubah tujuan edisi dan layanan database, menggabungkan atau menghapus database ke atau dari kumpulan elastis, mengatur opsi database, menambahkan atau menghapus database sebagai sekunder dalam hubungan replikasi geografis, dan mengatur tingkat kompatibilitas database.

Karena panjangnya, ALTER DATABASE sintaksis dipisahkan ke dalam beberapa artikel.

ALTER DATABASE
Artikel saat ini menyediakan sintaksis dan informasi terkait untuk mengubah nama dan pengaturan database lainnya.

UBAH Opsi SET DATABASE
Menyediakan sintaksis dan informasi terkait untuk mengubah atribut database dengan menggunakan opsi SET ALTER DATABASE.

UBAH Tingkat Kompatibilitas DATABASE
Menyediakan sintaksis dan informasi terkait untuk opsi SET ALTER DATABASE yang terkait dengan tingkat kompatibilitas database.

Sintaks

-- Azure SQL Database Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | MODIFY ( <edition_options> [, ... n] )
  | MODIFY BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
  | SET { <option_spec> [ ,... n ] WITH <termination>}
  | ADD SECONDARY ON SERVER <partner_server_name>
    [WITH ( <add-secondary-option>::=[, ... n] ) ]
  | REMOVE SECONDARY ON SERVER <partner_server_name>
  | FAILOVER
  | FORCE_FAILOVER_ALLOW_DATA_LOSS
}
[;]

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 250 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale'}
  | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL (name = <elastic_pool_name>) }
       }
}

<add-secondary-option> ::=
   {
      ALLOW_CONNECTIONS = { ALL | NO }
     | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
     | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL ( name = <elastic_pool_name>) }
       | DATABASE_NAME = <target_database_name>
       | SECONDARY_TYPE = { GEO | NAMED }
       }
   }

<service-objective> ::={ 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'BC_DC_n'
      | 'BC_Gen5_n' 
      | 'BC_M_n' 
      | 'GP_DC_n'
      | 'GP_Fsv2_n' 
      | 'GP_Gen5_n' 
      | 'GP_S_Gen5_n' 
      | 'HS_DC_n'
      | 'HS_Gen5_n'
      | 'HS_MOPRMS_n' 
      | 'HS_PRMS_n' 
      | { ELASTIC_POOL(name = <elastic_pool_name>) }
      }

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
  | <compatibility_level>
    { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}

Argumen

database_name

Adalah nama database yang akan dimodifikasi.

CURRENT
Menunjuk bahwa database saat ini yang digunakan harus diubah.

UBAH NAMA = new_database_name

Mengganti nama database dengan nama yang ditentukan sebagai new_database_name. Contoh berikut mengubah nama database db1 menjadi db2:

ALTER DATABASE db1
    MODIFY Name = db2 ;

UBAH (EDISI = ['Dasar' | 'Standar' | 'Premium' |' GeneralPurpose' | 'BusinessCritical' | 'Hyperscale'])

Mengubah tingkat layanan database.

Contoh berikut mengubah edisi menjadi Premium:

ALTER DATABASE current
    MODIFY (EDITION = 'Premium');

Penting

Perubahan EDITION gagal jika properti MAXSIZE untuk database diatur ke nilai di luar rentang valid yang didukung oleh edisi tersebut.

UBAH (BACKUP_STORAGE_REDUNDANCY = ['LOCAL' | 'ZONE' | 'GEO'])

Mengubah redundansi penyimpanan cadangan pemulihan point-in-time dan cadangan retensi jangka panjang (jika dikonfigurasi) database. Perubahan diterapkan pada semua cadangan yang diambil di masa mendatang. Pencadangan yang ada terus menggunakan pengaturan sebelumnya.

Untuk menerapkan residensi data saat Anda membuat database dengan menggunakan T-SQL, gunakan LOCAL atau ZONE sebagai input ke parameter BACKUP_STORAGE_REDUNDANCY.

MODIFIKASI (MAXSIZE = [100 MB | 500 MB | 1 | 1024...4096] GB)

Menentukan ukuran maksimum database. Ukuran maksimum harus mematuhi kumpulan nilai yang valid untuk properti EDISI database. Mengubah ukuran maksimum database dapat menyebabkan EDISI database diubah.

Catatan

Argumen MAXSIZE tidak berlaku untuk database tunggal di tingkat layanan Hyperscale. Database tingkat layanan Hyperscale tumbuh sesuai kebutuhan, hingga 100 TB. Layanan SQL Database menambahkan penyimpanan secara otomatis - Anda tidak perlu mengatur ukuran maksimum.

Model DTU

MAXSIZE Dasar S0-S2 S3-S12 P1-P6 P11-P15
100 MB Ya Ya Ya Ya Ya
250 MB Ya Ya Ya Ya Ya
500 MB Ya Ya Ya Ya Ya
1 GB Ya Ya Ya Ya Ya
2 GB Ya (D) Ya Ya Ya Ya
5 GB T/A Ya Ya Ya Ya
10 GB T/A Ya Ya Ya Ya
20 GB T/A Ya Ya Ya Ya
30 GB T/A Ya Ya Ya Ya
40 GB T/A Ya Ya Ya Ya
50 GB T/A Ya Ya Ya Ya
100 GB T/A Ya Ya Ya Ya
150 GB T/A Ya Ya Ya Ya
200 GB T/A Ya Ya Ya Ya
250 GB T/A Ya (D) Ya (D) Ya Ya
300 GB T/A Ya Ya Ya Ya
400 GB T/A Ya Ya Ya Ya
500 GB T/A Ya Ya Ya (D) Ya
750 GB T/A Ya Ya Ya Ya
1024 GB T/A Ya Ya Ya Ya (D)
Dari 1024 GB hingga 4096 GB dengan kenaikan 256 GB 1 T/A T/A T/A T/A Ya

1 P11 dan P15 memungkinkan MAXSIZE hingga 4 TB dengan 1024 GB menjadi ukuran default. P11 dan P15 dapat menggunakan penyimpanan yang disertakan hingga 4 TB tanpa biaya tambahan. Di tingkat Premium, MAXSIZE yang lebih besar dari 1 TB saat ini tersedia di wilayah berikut: US Timur2, US Barat, US Gov Virginia, Eropa Barat, Jerman Tengah, Asia Tenggara, Jepang Timur, Australia Timur, Kanada Tengah, dan Kanada Timur. Untuk detail selengkapnya mengenai batasan sumber daya untuk model DTU, lihat Batas sumber daya DTU.

Nilai MAXSIZE untuk model DTU, jika ditentukan, harus berupa nilai yang valid yang ditunjukkan dalam tabel sebelumnya untuk tingkat layanan yang ditentukan.

Untuk batas seperti ukuran dan tempdb ukuran data maksimum dalam model pembelian vCore, lihat artikel untuk batas sumber daya untuk database tunggal atau batas sumber daya untuk kumpulan elastis.

Jika tidak ada MAXSIZEnilai yang diatur saat menggunakan model vCore, defaultnya adalah 32 GB. Untuk detail selengkapnya mengenai batasan sumber daya untuk model vCore, lihat batas sumber daya vCore.

Aturan berikut berlaku untuk argumen MAXSIZE dan EDITION:

  • Jika EDISI ditentukan tetapi MAXSIZE tidak ditentukan, nilai default untuk edisi akan digunakan. Misalnya, adalah EDISI diatur ke Standar, dan MAXSIZE tidak ditentukan, maka MAXSIZE secara otomatis diatur ke 250 MB.
  • Jika MAXSIZE maupun EDITION tidak ditentukan, EDISI diatur ke Tujuan Umum, dan MAXSIZE diatur ke 32 GB.

MODIFIKASI (SERVICE_OBJECTIVE = <tujuan> layanan)

Menentukan ukuran komputasi dan tujuan layanan.

SERVICE_OBJECTIVE

Menentukan ukuran komputasi (juga dikenal sebagai tujuan tingkat layanan, atau SLO).

  • Untuk model pembelian DTU: S0, , , S1S2, S3S4, S6, S7, S9, S12, P1, , P2, P4, , P6, , . P15P11 Lihat batas sumber daya untuk database tunggal DTU atau batas sumber daya untuk kumpulan elastis DTU untuk menemukan jumlah DTU yang ditetapkan untuk setiap ukuran komputasi.
  • Untuk model pembelian vCore, pilih tingkat dan berikan jumlah vCore dari daftar nilai yang telah ditetapkan, di mana jumlah vCore adalah n. Lihat batas sumber daya untuk database tunggal vCore atau batas sumber daya untuk kumpulan elastis vCore.
    • Contohnya:
    • GP_Gen5_8 untuk komputasi Seri Standar Tujuan Umum (Gen5), 8 vCore.
    • GP_S_Gen5_8 untuk komputasi Seri Standar Tanpa Server Tujuan Umum (Gen5), 8 vCore.
    • HS_Gen5_8 untuk Hyperscale - komputasi yang disediakan - seri standar (Gen5), 8 vCore.

Misalnya, sampel berikut mengubah tujuan layanan database tingkat Premium dalam model pembelian DTU menjadi P6:

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'P6');

Misalnya, sampel berikut mengubah tujuan layanan dari database komputasi yang disediakan dalam model pembelian vCore menjadi GP_Gen5_8:

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'GP_Gen5_8');

DATABASE_NAME

Hanya untuk Azure SQL Database Hyperscale. Nama database yang akan dibuat. Hanya digunakan oleh Replika bernama Azure SQL Database Hyperscale, ketika SECONDARY_TYPE = NAMED. Untuk informasi selengkapnya, lihat Replika sekunder Hyperscale.

SECONDARY_TYPE

Hanya untuk Azure SQL Database Hyperscale. GEO menentukan replika geografis, NAMED menentukan replika bernama. Defaultnya adalah GEO. Untuk informasi selengkapnya, lihat Replika sekunder Hyperscale.

Untuk deskripsi tujuan layanan dan informasi selengkapnya tentang ukuran, edisi, dan kombinasi tujuan layanan, lihat Membandingkan model pembelian berbasis vCore dan DTU dari Azure SQL Database, batas sumber daya DTU, dan batas sumber daya vCore. Dukungan untuk tujuan layanan PRS telah dihapus.

Saat SERVICE_OBJECTIVE tidak ditentukan, database sekunder dibuat pada tingkat layanan yang sama dengan database utama. Saat SERVICE_OBJECTIVE ditentukan, database sekunder dibuat pada tingkat yang ditentukan. SERVICE_OBJECTIVE yang ditentukan harus berada dalam edisi yang sama dengan sumbernya. Misalnya, Anda tidak dapat menentukan S0 jika edisinya premium.

MODIFIKASI (SERVICE_OBJECTIVE = ELASTIC_POOL (nama = <elastic_pool_name>)

Untuk menambahkan database yang sudah ada ke kumpulan elastis, atur SERVICE_OBJECTIVE database ke ELASTIC_POOL dan berikan nama kumpulan elastis. Anda juga dapat menggunakan opsi ini untuk mengubah database ke kumpulan elastis yang berbeda dalam server yang sama. Untuk informasi selengkapnya, lihat Kumpulan elastis membantu Anda mengelola dan menskalakan beberapa database di Azure SQL Database. Untuk menghapus database dari kumpulan elastis, gunakan ALTER DATABASE untuk mengatur SERVICE_OBJECTIVE ke ukuran komputasi database tunggal (tujuan layanan).

Catatan

Database di tingkat layanan Hyperscale tidak dapat ditambahkan ke kumpulan elastis.

TAMBAHKAN SEKUNDER DI PARTNER_SERVER_NAME SERVER <>

Membuat database sekunder replikasi geografis dengan nama yang sama di server mitra, membuat database lokal menjadi primer replikasi geografis, dan mulai mereplikasi data secara asinkron dari primer ke sekunder baru. Jika database dengan nama yang sama sudah ada di sekunder, perintah gagal. Perintah dijalankan pada master database di server yang menghosting database lokal yang menjadi utama.

Penting

Secara default, database sekunder dibuat dengan redundansi penyimpanan cadangan yang sama dengan database utama atau sumber. Mengubah redundansi penyimpanan cadangan saat membuat sekunder tidak didukung melalui T-SQL.

DENGAN ALLOW_CONNECTIONS { ALL | TIDAK }

Ketika ALLOW_CONNECTIONS tidak ditentukan, ALLOW_CONNECTIONS diatur ke ALL secara default. Jika diatur SEMUA, ini adalah database baca-saja yang memungkinkan semua login dengan izin yang sesuai untuk terhubung.

ELASTIC_POOL (nama = <elastic_pool_name>)

Saat ELASTIC_POOL tidak ditentukan, database sekunder tidak dibuat dalam kumpulan elastis. Saat ELASTIC_POOL ditentukan, database sekunder dibuat di kumpulan yang ditentukan.

Penting

Pengguna yang menjalankan perintah ADD SECONDARY harus DBManager di server utama, memiliki keanggotaan db_owner dalam database lokal, dan DBManager di server sekunder. Alamat IP klien harus ditambahkan ke daftar yang diizinkan di bawah aturan firewall untuk server utama dan sekunder. Dalam kasus alamat IP klien yang berbeda, alamat IP klien yang sama persis yang telah ditambahkan di server utama juga harus ditambahkan ke sekunder. Ini adalah langkah yang diperlukan untuk dilakukan sebelum menjalankan perintah ADD SECONDARY untuk memulai replikasi geografis.

HAPUS SEKUNDER DI <server partner_server_name>

Menghapus database sekunder yang direplikasi secara geografis yang ditentukan pada server yang ditentukan. Perintah dijalankan pada master database di server yang menghosting database utama.

Penting

Pengguna yang REMOVE SECONDARY menjalankan perintah harus DBManager di server utama.

FAILOVER

Mempromosikan database sekunder dalam kemitraan replikasi geografis tempat perintah dijalankan untuk menjadi primer dan menurunkan primer saat ini untuk menjadi sekunder baru. Sebagai bagian dari proses ini, mode replikasi geografis untuk sementara dialihkan dari mode asinkron ke mode sinkron. Selama proses failover:

  1. Primer berhenti mengambil transaksi baru.
  2. Semua transaksi terutang dibersihkan ke sekunder.
  3. Sekunder menjadi primer dan memulai replikasi geografis asinkron dengan primer lama / sekunder baru.

Urutan ini memastikan bahwa tidak ada kehilangan data yang terjadi. Periode di mana kedua database tidak tersedia berada pada urutan 0-25 detik saat peran dialihkan. Total operasi harus memakan waktu tidak lebih dari sekitar satu menit. Jika database utama tidak tersedia saat perintah ini dikeluarkan, perintah gagal dengan pesan kesalahan yang menunjukkan bahwa database utama tidak tersedia. Jika proses failover tidak selesai dan tampak macet, Anda dapat menggunakan perintah failover paksa dan menerima kehilangan data - dan kemudian, jika Anda perlu memulihkan data yang hilang, panggil devops (CSS) untuk memulihkan data yang hilang.

Penting

Pengguna yang menjalankan perintah FAILOVER harus DBManager di server utama dan server sekunder.

FORCE_FAILOVER_ALLOW_DATA_LOSS

Mempromosikan database sekunder dalam kemitraan replikasi geografis tempat perintah dijalankan untuk menjadi primer dan menurunkan primer saat ini untuk menjadi sekunder baru. Gunakan perintah ini hanya ketika primer saat ini tidak lagi tersedia. Ini dirancang hanya untuk pemulihan bencana, ketika memulihkan ketersediaan sangat penting, dan beberapa kehilangan data dapat diterima.

Selama failover paksa:

  1. Database sekunder yang ditentukan segera menjadi database utama dan mulai menerima transaksi baru.
  2. Ketika primer asli dapat terhubung kembali dengan primer baru, cadangan inkremental diambil pada primer asli, dan primer asli menjadi sekunder baru.
  3. Untuk memulihkan data dari cadangan bertambah bertahap ini pada primer lama, pengguna melibatkan devops/CSS.
  4. Jika ada sekunder tambahan, mereka secara otomatis dikonfigurasi ulang untuk menjadi sekunder dari primer baru. Proses ini tidak sinkron dan mungkin ada penundaan hingga proses ini selesai. Sampai konfigurasi ulang selesai, sekunder terus menjadi sekunder dari primer lama.

Penting

Pengguna yang FORCE_FAILOVER_ALLOW_DATA_LOSS menjalankan perintah harus termasuk dbmanager dalam peran di server utama dan server sekunder.

Keterangan

Untuk menghapus database, gunakan DROP DATABASE. Untuk mengurangi ukuran database, gunakan DBCC SHRINKDATABASE.

Pernyataan ALTER DATABASE harus berjalan dalam mode penerapan otomatis (mode manajemen transaksi default) dan tidak diizinkan dalam transaksi eksplisit atau implisit.

Menghapus cache rencana menyebabkan kompilasi ulang semua rencana eksekusi berikutnya dan dapat menyebabkan penurunan performa kueri secara tiba-tiba dan sementara. Untuk setiap cachestore yang dihapus dalam cache paket, log kesalahan SQL Server berisi pesan informasi berikut: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Pesan ini dicatat setiap lima menit selama cache dihapus dalam interval waktu tersebut.

Cache prosedur juga dihapus dalam skenario berikut: Anda menjalankan beberapa kueri terhadap database yang memiliki opsi default. Kemudian, database dihilangkan.

Menampilkan informasi database

Anda dapat menggunakan tampilan katalog, fungsi sistem, dan prosedur tersimpan sistem untuk mengembalikan informasi tentang database, file, dan grup file.

Izin

Untuk mengubah database, login harus berupa login admin server (dibuat saat server logis Azure SQL Database disediakan), admin Microsoft Entra server, anggota peran database dbmanager di master, anggota peran database db_owner dalam database saat ini, atau dbo database. ID Microsoft Entra adalah (sebelumnya Azure Active Directory).

Untuk menskalakan database melalui T-SQL, diperlukan izin ALTER DATABASE. Untuk menskalakan database melalui peran portal Azure, PowerShell, Azure CLI, atau REST API, Azure RBAC diperlukan, khususnya peran Kontributor, Kontributor SQL DB, atau Kontributor SQL Server Azure RBAC. Untuk informasi selengkapnya, kunjungi Peran bawaan Azure.

Contoh

J. Periksa opsi edisi dan ubah

Mengatur edisi dan ukuran maksimum untuk database db1:

SELECT Edition = DATABASEPROPERTYEX('db1', 'EDITION'),
        ServiceObjective = DATABASEPROPERTYEX('db1', 'ServiceObjective'),
        MaxSizeInBytes =  DATABASEPROPERTYEX('db1', 'MaxSizeInBytes');

ALTER DATABASE [db1] MODIFY (EDITION = 'Premium', MAXSIZE = 1024 GB, SERVICE_OBJECTIVE = 'P15');

B. Memindahkan database ke kumpulan elastis yang berbeda

Memindahkan database yang ada ke dalam kumpulan bernama pool1:

ALTER DATABASE db1
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;

C. Menambahkan Geo-Replikasi Sekunder

Membuat database db1 sekunder yang dapat dibaca di server secondaryserverdb1 di server lokal.

ALTER DATABASE db1
ADD SECONDARY ON SERVER secondaryserver
WITH ( ALLOW_CONNECTIONS = ALL )

D. Menghapus Geo-Replikasi Sekunder

Menghapus database db1 sekunder di server secondaryserver.

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver

E. Failover ke Sekunder Geo-Replikasi

Mempromosikan database db1 sekunder di server secondaryserver untuk menjadi database utama baru saat dijalankan di server secondaryserver.

ALTER DATABASE db1 FAILOVER

Catatan

Untuk informasi selengkapnya, lihat Panduan pemulihan bencana - Azure SQL Database dan daftar periksa ketersediaan tinggi dan pemulihan bencana Azure SQL Database.

F. Paksa Failover ke Geo-Replikasi Sekunder dengan kehilangan data

Memaksa database db1 sekunder di server secondaryserver untuk menjadi database utama baru saat dijalankan di server secondaryserver, jika server utama menjadi tidak tersedia. Opsi ini dapat menimbulkan kehilangan data.

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS

G. Memperbarui database tunggal ke tingkat layanan S0 (Edisi Standar, tingkat performa 0)

Memperbarui database tunggal ke edisi Standar (tingkat layanan) dengan ukuran komputasi (tujuan layanan) S0 dan ukuran maksimum 250 GB.

ALTER DATABASE [db1] MODIFY (EDITION = 'Standard', MAXSIZE = 250 GB, SERVICE_OBJECTIVE = 'S0');

H. Memperbarui redundansi penyimpanan cadangan database

Memperbarui redundansi penyimpanan cadangan database ke zona redundan. Semua cadangan database ini di masa mendatang menggunakan pengaturan baru. Ini termasuk pencadangan pemulihan point-in-time dan cadangan retensi jangka panjang (jika dikonfigurasi).

ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE'

* SQL Managed Instance *  

 

Gambaran Umum: Azure SQL Managed Instance

Di Azure SQL Managed Instance, gunakan pernyataan ini untuk mengatur opsi database.

Karena panjangnya, ALTER DATABASE sintaksis dipisahkan ke dalam beberapa artikel.

Artikel Deskripsi
ALTER DATABASE
Artikel saat ini menyediakan sintaksis dan informasi terkait untuk mengatur opsi file dan grup file, untuk mengatur opsi database, dan untuk mengatur tingkat kompatibilitas database.
UBAH Opsi File DATABASE dan Grup File
Menyediakan sintaksis dan informasi terkait untuk menambahkan dan menghapus file dan grup file dari database, dan untuk mengubah atribut file dan grup file.
UBAH Opsi SET DATABASE
Menyediakan sintaksis dan informasi terkait untuk mengubah atribut database dengan menggunakan opsi SET ALTER DATABASE.
UBAH Tingkat Kompatibilitas DATABASE
Menyediakan sintaksis dan informasi terkait untuk opsi SET ALTER DATABASE yang terkait dengan tingkat kompatibilitas database.

Sintaks

-- Azure SQL Managed Instance syntax  
ALTER DATABASE { database_name | CURRENT }  
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ]  
}  
[;]

<file_and_filegroup_options>::=  
  <add_or_modify_files>::=  
  <filespec>::=
  <add_or_modify_filegroups>::=  
  <filegroup_updatability_option>::=  

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>  
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <temporal_history_retention>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}  

Argumen

database_name

Adalah nama database yang akan dimodifikasi.

CURRENT
Menunjuk bahwa database saat ini yang digunakan harus diubah.

Keterangan

  • Untuk menghapus database, gunakan DROP DATABASE.

  • Untuk mengurangi ukuran database, gunakan DBCC SHRINKDATABASE.

  • Pernyataan ALTER DATABASE harus berjalan dalam mode penerapan otomatis (mode manajemen transaksi default) dan tidak diizinkan dalam transaksi eksplisit atau implisit.

  • Cache paket untuk Azure SQL Managed Instance dibersihkan dengan mengatur salah satu opsi berikut.

    • COLLATE

    • UBAH FILEGROUP DEFAULT

    • UBAH fileGROUP READ_ONLY

    • UBAH fileGROUP READ_WRITE

    • UBAH NAMA

      Menghapus cache rencana menyebabkan kompilasi ulang semua rencana eksekusi berikutnya dan dapat menyebabkan penurunan performa kueri secara tiba-tiba dan sementara. Untuk setiap cachestore yang dihapus dalam cache paket, log kesalahan SQL Server berisi pesan informasi berikut: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Pesan ini dicatat setiap lima menit selama cache dihapus dalam interval waktu tersebut. Cache paket juga dihapus ketika beberapa kueri dijalankan terhadap database yang memiliki opsi default. Kemudian, database dihilangkan.

  • Beberapa ALTER DATABASE pernyataan memerlukan kunci eksklusif pada database untuk dijalankan. Inilah sebabnya mengapa mereka mungkin gagal ketika proses aktif lain menahan kunci pada database. Kesalahan yang dilaporkan dalam kasus seperti ini adalah Msg 5061, Level 16, State 1, Line 38 dengan pesan ALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later. Ini biasanya merupakan kegagalan sementara dan untuk mengatasinya, setelah semua kunci pada database dirilis, coba ALTER DATABASE lagi pernyataan yang gagal. Tampilan sistem sys.dm_tran_locks menyimpan informasi tentang kunci aktif. Untuk memeriksa apakah ada kunci bersama atau eksklusif pada database, gunakan kueri berikut.

    SELECT
        resource_type, resource_database_id, request_mode, request_type, request_status, request_session_id 
    FROM 
        sys.dm_tran_locks
    WHERE
        resource_database_id = DB_ID('testdb');
    

Menampilkan informasi database

Anda dapat menggunakan tampilan katalog, fungsi sistem, dan prosedur tersimpan sistem untuk mengembalikan informasi tentang database, file, dan grup file.

Izin

Hanya login utama tingkat server (dibuat oleh proses provisi) atau anggota dbcreator peran database yang dapat mengubah database.

Penting

Pemilik database tidak dapat mengubah database kecuali mereka adalah anggota dbcreator peran.

Contoh

Contoh berikut menunjukkan kepada Anda cara mengatur penyetelan otomatis dan cara menambahkan file ke database di Azure SQL Managed Instance.

ALTER DATABASE WideWorldImporters
  SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);

ALTER DATABASE WideWorldImporters
  ADD FILE (NAME = 'data_17');

* Azure Synapse
Analytics*
 

 

Ringkasan: Azure Synapse Analytics

Di Azure Synapse, ALTER DATABASE memodifikasi opsi konfigurasi tertentu dari kumpulan SQL khusus.

Karena panjangnya, ALTER DATABASE sintaksis dipisahkan ke dalam beberapa artikel.

Opsi ALTER DATABASE SET menyediakan sintaksis dan informasi terkait untuk mengubah atribut database dengan menggunakan opsi SET .ALTER DATABASE

Sintaks

ALTER DATABASE { database_name | CURRENT }
{
  MODIFY NAME = new_database_name
| MODIFY ( <edition_option> [, ... n] )
| SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<edition_option> ::=
      MAXSIZE = {
            250 | 500 | 750 | 1024 | 5120 | 10240 | 20480
          | 30720 | 40960 | 51200 | 61440 | 71680 | 81920
          | 92160 | 102400 | 153600 | 204800 | 245760
      } GB
      | SERVICE_OBJECTIVE = {
            'DW100' | 'DW200' | 'DW300' | 'DW400' | 'DW500'
          | 'DW600' | 'DW1000' | 'DW1200' | 'DW1500' | 'DW2000'
          | 'DW3000' | 'DW6000' | 'DW500c' | 'DW1000c' | 'DW1500c'
          | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c' | 'DW6000c'
          | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
      }

Argumen

database_name

Menentukan nama database yang akan dimodifikasi.

UBAH NAMA = new_database_name

Mengganti nama database dengan nama yang ditentukan sebagai new_database_name.

Opsi 'UBAH NAMA' memiliki beberapa batasan dukungan di Azure Synapse:

  • Tidak didukung dengan kumpulan tanpa server Azure Synapse
  • Tidak didukung dengan kumpulan SQL khusus yang dibuat di Ruang Kerja Azure Synapse Anda
  • Didukung dengan kumpulan SQL khusus (sebelumnya SQL DW) yang dibuat melalui portal Azure, termasuk yang memiliki ruang kerja yang terhubung

MAXSIZE

Defaultnya adalah 245.760 GB (240 TB).

Berlaku untuk: Dioptimalkan untuk Compute Gen1

Ukuran maksimum yang diperbolehkan untuk database. Database tidak dapat tumbuh melebihi MAXSIZE.

Berlaku untuk: Dioptimalkan untuk Compute Gen2

Ukuran maksimum yang diizinkan untuk data rowstore dalam database. Data yang disimpan dalam tabel rowstore, deltastore indeks penyimpan kolom, atau indeks non-kluster pada indeks penyimpan kolom berkluster tidak dapat tumbuh melebihi MAXSIZE. Data yang dikompresi ke dalam format penyimpan kolom tidak memiliki batas ukuran dan tidak dibatasi oleh MAXSIZE.

SERVICE_OBJECTIVE

Menentukan ukuran komputasi (tujuan layanan). Untuk informasi selengkapnya tentang tujuan layanan untuk Azure Synapse, lihat Unit Gudang Data (DWUs).

Izin

Memerlukan izin ini:

  • Login utama tingkat server (yang dibuat oleh proses provisi), atau
  • Anggota dbmanager peran database.

Pemilik database tidak dapat mengubah database kecuali pemiliknya adalah anggota dbmanager peran.

Keterangan

Database saat ini harus berupa database yang berbeda dari database yang Anda ubah, oleh karena itu ALTER harus dijalankan saat tersambung ke master database.

COMPATIBILITY_LEVEL di SQL Analytics diatur ke 130 secara default dan tidak dapat diubah. Untuk informasi selengkapnya, lihat MENGUBAH tingkat kompatibilitas DATABASE.

Catatan

COMPATIBILITY_LEVEL hanya berlaku untuk sumber daya (kumpulan) yang disediakan.

Batasan

Untuk menjalankan ALTER DATABASE, database harus online dan tidak dapat dalam keadaan dijeda.

Pernyataan ALTER DATABASE harus berjalan dalam mode penerapan otomatis, yang merupakan mode manajemen transaksi default. Ini diatur dalam pengaturan koneksi.

Pernyataan ALTER DATABASE tidak dapat menjadi bagian dari transaksi yang ditentukan pengguna.

Anda tidak dapat mengubah kolamen database.

Contoh

Sebelum Anda menjalankan contoh-contoh ini, pastikan database yang Anda ubah bukan database saat ini. Database saat ini harus berupa database yang berbeda dari database yang Anda ubah, oleh karena itu ALTER harus dijalankan saat tersambung ke master database.

J. Mengubah nama database

ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;

B. Mengubah ukuran maksimum untuk database

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );

C. Mengubah ukuran komputasi (tujuan layanan)

ALTER DATABASE dw1 MODIFY ( SERVICE_OBJECTIVE= 'DW1200' );

D. Mengubah ukuran maksimum dan ukuran komputasi (tujuan layanan)

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB, SERVICE_OBJECTIVE= 'DW1200' );

*Analytics
Sistem Platform (PDW) *
 

 

Gambaran Umum: Sistem Platform Analitik

Di Analytics Platform System (PDW), ALTER DATABASE memodifikasi opsi ukuran database maksimum untuk tabel yang direplikasi, tabel terdistribusi, dan log transaksi. Gunakan pernyataan ini untuk mengelola alokasi ruang disk untuk database saat bertambah atau menyusut dalam ukuran. Artikel ini juga menguraikan sintaksis yang terkait dengan pengaturan opsi database di Analytics Platform System (PDW).

Sintaks

-- Analytics Platform System
ALTER DATABASE database_name
    SET ( <set_database_options> | <db_encryption_option> )
[;]

<set_database_options> ::=
{
    AUTOGROW = { ON | OFF }
    | REPLICATED_SIZE = size [GB]
    | DISTRIBUTED_SIZE = size [GB]
    | LOG_SIZE = size [GB]
    | SET AUTO_CREATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF }

Argumen

database_name

Nama database yang akan dimodifikasi. Untuk menampilkan daftar database pada appliance, gunakan sys.databases.

AUTOGROW = { AKTIF | NONAKTIF }

Memperbarui opsi AUTOGROW. Ketika AUTOGROW AKTIF, Analytics Platform System (PDW) secara otomatis meningkatkan ruang yang dialokasikan untuk tabel yang direplikasi, tabel terdistribusi, dan log transaksi seperlunya untuk mengakomodasi pertumbuhan persyaratan penyimpanan. Saat AUTOGROW NONAKTIF, Analytics Platform System (PDW) mengembalikan kesalahan jika tabel yang direplikasi, tabel terdistribusi, atau log transaksi melebihi pengaturan ukuran maksimum.

REPLICATED_SIZE = ukuran [GB]

Menentukan gigabyte maksimum baru per simpul Komputasi untuk menyimpan semua tabel yang direplikasi dalam database yang diubah. Jika Anda berencana untuk ruang penyimpanan appliance, Anda perlu mengalikan REPLICATED_SIZE dengan jumlah simpul Komputasi di appliance.

DISTRIBUTED_SIZE = ukuran [GB]

Menentukan gigabyte maksimum baru per database untuk menyimpan semua tabel terdistribusi dalam database yang diubah. Ukuran didistribusikan di semua simpul Komputasi di appliance.

LOG_SIZE = ukuran [GB]

Menentukan gigabyte maksimum baru per database untuk menyimpan semua log transaksi dalam database yang diubah. Ukuran didistribusikan di semua simpul Komputasi di appliance.

ENKRIPSI { AKTIF | NONAKTIF }

Mengatur database yang akan dienkripsi (AKTIF) atau tidak dienkripsi (NONAKTIF). Enkripsi hanya dapat dikonfigurasi untuk Analytics Platform System (PDW) saat sp_pdw_database_encryption telah diatur ke 1. Kunci enkripsi database harus dibuat sebelum enkripsi data transparan dapat dikonfigurasi. Untuk informasi selengkapnya tentang enkripsi database, lihat Enkripsi data transparan (TDE).

SET AUTO_CREATE_STATISTICS { ON | NONAKTIF }

Saat opsi statistik pembuatan otomatis, AUTO_CREATE_STATISTICS, aktif, Pengoptimal Kueri membuat statistik pada kolom individual dalam predikat kueri, seperlunya, untuk meningkatkan perkiraan kardinalitas untuk rencana kueri. Statistik kolom tunggal ini dibuat pada kolom yang belum memiliki histogram dalam objek statistik yang ada.

Defaultnya adalah AKTIF untuk database baru yang dibuat setelah memutakhirkan ke AU7. Defaultnya adalah OFF untuk database yang dibuat sebelum peningkatan.

Untuk informasi selengkapnya tentang statistik, lihat Statistik

SET AUTO_UPDATE_STATISTICS { ON | NONAKTIF }

Saat opsi statistik pembaruan otomatis, AUTO_UPDATE_STATISTICS, aktif, pengoptimal kueri menentukan kapan statistik mungkin kedaluarsa lalu memperbaruinya saat digunakan oleh kueri. Statistik menjadi kedaluarsa setelah operasi menyisipkan, memperbarui, menghapus, atau menggabungkan mengubah distribusi data dalam tabel atau tampilan terindeks. Pengoptimal kueri menentukan kapan statistik mungkin kedaluarsa dengan menghitung jumlah modifikasi data sejak pembaruan statistik terakhir dan membandingkan jumlah modifikasi dengan ambang batas. Ambang didasarkan pada jumlah baris dalam tabel atau tampilan terindeks.

Defaultnya adalah AKTIF untuk database baru yang dibuat setelah memutakhirkan ke AU7. Defaultnya adalah OFF untuk database yang dibuat sebelum peningkatan.

Untuk informasi selengkapnya tentang statistik, lihat Statistik.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | NONAKTIF }

Opsi pembaruan statistik asinkron, AUTO_UPDATE_STATISTICS_ASYNC, menentukan apakah Pengoptimal Kueri menggunakan pembaruan statistik sinkron atau asinkron. Opsi AUTO_UPDATE_STATISTICS_ASYNC berlaku untuk objek statistik yang dibuat untuk indeks, kolom tunggal dalam predikat kueri, dan statistik yang dibuat dengan CREATE STATISTICS pernyataan.

Defaultnya adalah AKTIF untuk database baru yang dibuat setelah memutakhirkan ke AU7. Defaultnya adalah OFF untuk database yang dibuat sebelum peningkatan.

Untuk informasi selengkapnya tentang statistik, lihat Statistik.

Izin

ALTER Memerlukan izin pada database.

Pesan kesalahan

Jika statistik otomatis dinonaktifkan dan Anda mencoba mengubah pengaturan statistik, PDW mengeluarkan kesalahan This option isn't supported in PDW. Administrator sistem dapat mengaktifkan statistik otomatis dengan mengaktifkan pengalihan fitur AutoStatsEnabled.

Keterangan

Nilai untuk REPLICATED_SIZE, DISTRIBUTED_SIZE, dan LOG_SIZE bisa lebih besar dari, sama dengan, atau kurang dari nilai saat ini untuk database.

Batasan

Operasi pertumbuhan dan penyusutan adalah perkiraan. Ukuran aktual yang dihasilkan dapat bervariasi dari parameter ukuran.

Analytics Platform System (PDW) tidak melakukan ALTER DATABASE pernyataan sebagai operasi atomik. Jika pernyataan dibatalkan selama eksekusi, perubahan yang telah terjadi akan tetap ada.

Pengaturan statistik hanya berfungsi jika administrator telah mengaktifkan statistik otomatis. Jika Anda adalah administrator, gunakan sakelar fitur AutoStatsEnabled untuk mengaktifkan atau menonaktifkan statistik otomatis.

Perilaku penguncian

Mengambil kunci bersama pada objek DATABASE. Anda tidak dapat mengubah database yang digunakan oleh pengguna lain untuk membaca atau menulis. Ini termasuk sesi yang telah mengeluarkan pernyataan USE pada database.

Performa

Menyusutkan database dapat memakan banyak waktu dan sumber daya sistem, tergantung pada ukuran data aktual dalam database, dan jumlah fragmentasi pada disk. Misalnya, menyusutkan database bisa memakan waktu beberapa jam atau lebih.

Tentukan Kemajuan Enkripsi

Gunakan kueri berikut untuk menentukan kemajuan enkripsi data transparan database sebagai persen:

WITH
database_dek AS (
    SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id,
        dek.encryption_state, dek.percent_complete,
        dek.key_algorithm, dek.key_length, dek.encryptor_thumbprint,
        type
    FROM sys.dm_pdw_nodes_database_encryption_keys AS dek
    INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map
        ON dek.database_id = node_db_map.database_id
        AND dek.pdw_node_id = node_db_map.pdw_node_id
    LEFT JOIN sys.pdw_database_mappings AS db_map
        ON node_db_map .physical_name = db_map.physical_name
    INNER JOIN sys.dm_pdw_nodes nodes
        ON nodes.pdw_node_id = dek.pdw_node_id
    WHERE dek.encryptor_thumbprint <> 0x
),
dek_percent_complete AS (
    SELECT database_dek.database_id, AVG(database_dek.percent_complete) AS percent_complete
    FROM database_dek
    WHERE type = 'COMPUTE'
    GROUP BY database_dek.database_id
)
SELECT DB_NAME( database_dek.database_id ) AS name,
    database_dek.database_id,
    ISNULL(
       (SELECT TOP 1 dek_encryption_state.encryption_state
        FROM database_dek AS dek_encryption_state
        WHERE dek_encryption_state.database_id = database_dek.database_id
        ORDER BY (CASE encryption_state
            WHEN 3 THEN -1
            ELSE encryption_state
            END) DESC), 0)
        AS encryption_state,
dek_percent_complete.percent_complete,
database_dek.key_algorithm, database_dek.key_length, database_dek.encryptor_thumbprint
FROM database_dek
INNER JOIN dek_percent_complete
    ON dek_percent_complete.database_id = database_dek.database_id
WHERE type = 'CONTROL';

Untuk contoh komprehensif yang menunjukkan semua langkah dalam menerapkan TDE, lihat Enkripsi data transparan (TDE).

Contoh: Analytics Platform System (PDW)

J. Mengubah pengaturan AUTOGROW

Atur AUTOGROW ke AKTIF untuk database CustomerSales.

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Mengubah penyimpanan maksimum untuk tabel yang direplikasi

Contoh berikut mengatur batas penyimpanan tabel yang direplikasi menjadi 1 GB untuk database CustomerSales. Ini adalah batas penyimpanan per simpul Komputasi.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Mengubah penyimpanan maksimum untuk tabel terdistribusi

Contoh berikut menetapkan batas penyimpanan tabel terdistribusi menjadi 1000 GB (satu terabyte) untuk database CustomerSales. Ini adalah batas penyimpanan gabungan di seluruh appliance untuk semua simpul Komputasi, bukan batas penyimpanan per simpul Komputasi.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Mengubah penyimpanan maksimum untuk log transaksi

Contoh berikut memperbarui database CustomerSales agar memiliki ukuran log transaksi SQL Server maksimum 10 GB untuk appliance.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Periksa nilai statistik saat ini

Kueri berikut mengembalikan nilai statistik saat ini untuk semua database. Nilai 1 berarti fitur aktif, dan berarti 0 fitur nonaktif.

SELECT NAME,
    is_auto_create_stats_on,
    is_auto_update_stats_on,
    is_auto_update_stats_async_on
FROM sys.databases;

F. Mengaktifkan statistik pembuatan otomatis dan pembaruan otomatis untuk database

Gunakan pernyataan berikut untuk mengaktifkan buat dan perbarui statistik secara otomatis dan asinkron untuk database, CustomerSales. Ini membuat dan memperbarui statistik kolom tunggal seperlunya untuk membuat rencana kueri berkualitas tinggi.

ALTER DATABASE CustomerSales
    SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE CustomerSales
    SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE
    SET AUTO_UPDATE_STATISTICS_ASYNC ON;