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 INSERT
yang 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
- LURING
- DARING
- 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 AdventureWorks2022
Northwind
.
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
Konten terkait
* 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 tunggal tumbuh sesuai kebutuhan, hingga 128 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 MAXSIZE
nilai 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
, , ,S1
S2
,S3
S4
,S6
,S7
,S9
,S12
,P1
, ,P2
,P4
, ,P6
, , .P15
P11
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:
- Primer berhenti mengambil transaksi baru.
- Semua transaksi terutang dibersihkan ke sekunder.
- 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:
- Database sekunder yang ditentukan segera menjadi database utama dan mulai menerima transaksi baru.
- Ketika primer asli dapat terhubung kembali dengan primer baru, cadangan inkremental diambil pada primer asli, dan primer asli menjadi sekunder baru.
- Untuk memulihkan data dari cadangan bertambah bertahap ini pada primer lama, pengguna melibatkan devops/CSS.
- 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 secondaryserver
db1
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';
Konten terkait
- CREATE DATABASE - Azure SQL Database
- DATABASEPROPERTYEX
- JATUHKAN DATABASE
- ATUR TINGKAT ISOLASI TRANSAKSI
- EVENTDATA
- sp_spaceused
- sys.databases
- sys.database_files
- sys.filegroups
- sys.master_files
- Database Sistem
- Panduan pemulihan bencana - Azure SQL Database
- Daftar periksa ketersediaan tinggi dan pemulihan bencana Azure SQL Database
- Batas sumber daya DTU
- Batas sumber daya vCore untuk database tunggal
- Batas Sumber Daya vCore untuk kumpulan elastis
* 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 adalahMsg 5061, Level 16, State 1, Line 38
dengan pesanALTER 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, cobaALTER DATABASE
lagi pernyataan yang gagal. Tampilan sistemsys.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');
Konten terkait
* 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' );
Konten terkait
*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;
Konten terkait
Gambaran Umum: Microsoft Fabric
Microsoft Fabric
Di Microsoft Fabric Warehouse, pernyataan ini memodifikasi gudang.
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. |
OPSI UBAH SET DATABASE | Menyediakan sintaksis dan informasi terkait untuk mengubah atribut database dengan menggunakan opsi SET ALTER DATABASE. |
Keterangan
Saat ini, menjeda penerbitan log Delta Lake dan menonaktifkan perilaku V-Order di gudang adalah satu-satunya kegunaan untuk ALTER DATABASE ... SET
di Microsoft Fabric. Lihat Opsi ALTER DATABASE SET.