MENGUBAH DATABASE (T-SQL)

Memodifikasi opsi konfigurasi database tertentu.

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

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

Pilih produk

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

* SQL Server *  

 

Ringkasan: SQL Server

Dalam SQL Server, pernyataan ini memodifikasi database, atau file dan grup file yang terkait dengan 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 sintaks dipisahkan ke dalam beberapa artikel.

MENGUBAH DATABASE
Artikel saat ini menyediakan sintaksis dan informasi terkait untuk mengubah nama dan kolaborasi database.

ALTER DATABASE File dan Filegroup Options
Menyediakan sintaks 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 sintaks dan informasi terkait untuk mengubah atribut database dengan menggunakan opsi SET ALTER DATABASE.

MENGUBAH Pencerminan Database DATABASE
Menyediakan sintaks dan informasi terkait untuk opsi SET ALTER DATABASE yang terkait dengan pencerminan database.

MENGUBAH HADR SET DATABASE
Menyediakan sintaks dan informasi terkait untuk opsi grup ketersediaan AlwaysOn dari ALTER DATABASE untuk mengonfigurasi database sekunder pada replika sekunder dari grup ketersediaan AlwaysOn.

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

MENGUBAH KONFIGURASI LINGKUP DATABASE
Menyediakan sintaksis 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>
      { 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}

Argumen

database_name Adalah nama database yang akan dimodifikasi.

Catatan

Opsi ini tidak tersedia dalam Database Mandiri.

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 kolajeasi untuk database. collation_name dapat 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 kolajeasi Windows dan SQL, lihat COLLATE.

<> delayed_durability_option ::=
Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

Untuk informasi selengkapnya, lihat Mengubah Opsi SET DATABASE dan Mengontrol 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 akan gagal dengan kesalahan. Saat Anda membuat rencana kueri untuk pernyataan SELECT, pengoptimal kueri menghindari indeks nonkluster dan tampilan terindeks yang berada di grup file offline. Ini memungkinkan pernyataan ini berhasil. Namun, jika grup file offline berisi heap atau indeks berkluster 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 akan gagal.

Ketika database dalam status PEMULIHAN, sebagian besar ALTER DATABASE pernyataan akan 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 READ_ONLY GRUPFILE
  • UBAH READ_WRITE FILEGROUP
  • MODIFY_NAME
  • OFFLINE
  • ONLINE
  • PAGE_VERIFY
  • READ_ONLY
  • READ_WRITE

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 disiram 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 mencopot database.

Mengubah Kolatasi Database

Sebelum Anda menerapkan kolajeasi yang berbeda ke database, pastikan bahwa kondisi berikut ini sudah ada:

  • 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 kolase database, ada dalam database, pernyataan ALTER DATABASEdatabase_nameCOLLATE akan gagal. SQL Server akan 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 kolate database tidak membuat duplikat di antara nama sistem apa pun untuk objek database. Jika nama duplikat dihasilkan dari kolase yang diubah, namespace berikut dapat menyebabkan kegagalan perubahan kolase database:

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

Nama duplikat yang dihasilkan dari kolase baru akan menyebabkan tindakan perubahan gagal, dan SQL Server akan 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

A. Mengubah nama database

Contoh berikut mengubah nama database menjadi AdventureWorks2012Northwind.

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

B. Mengubah kolatasi database

Contoh berikut membuat database bernama testdb dengan SQL_Latin1_General_CP1_CI_AS kolajeksi, lalu mengubah kolab testdb database menjadi COLLATE French_CI_AI.

Berlaku untuk: SQL Server 2008 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

Lihat juga

* SQL Database *  

 

Ringkasan: 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 sintaks dipisahkan menjadi beberapa artikel.

MENGUBAH DATABASE
Artikel saat ini menyediakan sintaksis dan informasi terkait untuk mengubah nama dan kolaborasi database.

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

UBAH Tingkat Kompatibilitas DATABASE
Menyediakan sintaks 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 }
     | 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'
      | 'GP_Gen4_1' | 'GP_Gen4_2' | 'GP_Gen4_3' | 'GP_Gen4_4' | 'GP_Gen4_5' | 'GP_Gen4_6'
      | 'GP_Gen4_7' | 'GP_Gen4_8' | 'GP_Gen4_9' | 'GP_Gen4_10' | 'GP_Gen4_16' | 'GP_Gen4_24'
      | 'GP_Gen5_2' | 'GP_Gen5_4' | 'GP_Gen5_6' | 'GP_Gen5_8' | 'GP_Gen5_10' | 'GP_Gen5_12' | 'GP_Gen5_14'
      | 'GP_Gen5_16' | 'GP_Gen5_18' | 'GP_Gen5_20' | 'GP_Gen5_24' | 'GP_Gen5_32' | 'GP_Gen5_40' | 'GP_Gen5_80'
      | 'GP_Fsv2_8' | 'GP_Fsv2_10' | 'GP_Fsv2_12' | 'GP_Fsv2_14' | 'GP_Fsv2_16' | 'GP_Fsv2_18'
      | 'GP_Fsv2_20' | 'GP_Fsv2_24' | 'GP_Fsv2_32' | 'GP_Fsv2_36' | 'GP_Fsv2_72'
      | 'GP_S_Gen5_1' | 'GP_S_Gen5_2' | 'GP_S_Gen5_4' | 'GP_S_Gen5_6' | 'GP_S_Gen5_8'
      | 'GP_S_Gen5_10' | 'GP_S_Gen5_12' | 'GP_S_Gen5_14' | 'GP_S_Gen5_16'
      | 'GP_S_Gen5_18' | 'GP_S_Gen5_20' | 'GP_S_Gen5_24' | 'GP_S_Gen5_32' | 'GP_S_Gen5_40'
      | 'BC_Gen4_1' | 'BC_Gen4_2' | 'BC_Gen4_3' | 'BC_Gen4_4' | 'BC_Gen4_5' | 'BC_Gen4_6'
      | 'BC_Gen4_7' | 'BC_Gen4_8' | 'BC_Gen4_9' | 'BC_Gen4_10' | 'BC_Gen4_16' | 'BC_Gen4_24'
      | 'BC_Gen5_2' | 'BC_Gen5_4' | 'BC_Gen5_6' | 'BC_Gen5_8' | 'BC_Gen5_10' | 'BC_Gen5_12' | 'BC_Gen5_14'
      | 'BC_Gen5_16' | 'BC_Gen5_18' | 'BC_Gen5_20' | 'BC_Gen5_24' | 'BC_Gen5_32' | 'BC_Gen5_40' | 'BC_Gen5_80'
      | 'BC_M_8' | 'BC_M_10' | 'BC_M_12' | 'BC_M_14' | 'BC_M_16' | 'BC_M_18'
      | 'BC_M_20' | 'BC_M_24' | 'BC_M_32' | 'BC_M_64' | 'BC_M_128'
      | 'HS_GEN4_1' | 'HS_GEN4_2' | 'HS_GEN4_4' | 'HS_GEN4_8' | 'HS_GEN4_16' | 'HS_GEN4_24'
      | 'HS_GEN5_2' | 'HS_GEN5_4' | 'HS_GEN5_8' | 'HS_GEN5_16' | 'HS_GEN5_24' | 'HS_GEN5_32' | 'HS_GEN5_48' | 'HS_GEN5_80'
      | { 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>
    { 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 ;

MODIFIKASI (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 EDISI gagal jika properti MAXSIZE untuk database diatur ke nilai di luar rentang valid yang didukung oleh edisi tersebut.

UBAH (| ['LOCAL' BACKUP_STORAGE_REDUNDANCY = | 'ZONA' 'GEO'])
Mengubah redundansi penyimpanan cadangan pemulihan titik waktu dan cadangan retensi jangka panjang (jika dikonfigurasi) database. Perubahan diterapkan ke semua cadangan di masa mendatang yang diambil. Pencadangan yang ada terus menggunakan pengaturan sebelumnya.

Penting

opsi BACKUP_STORAGE_REDUNDANCY untuk database Azure SQL tersedia dalam pratinjau publik di Brasil Selatan dan umumnya hanya tersedia di wilayah Azure Asia Tenggara.

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

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

* 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 menjadi nilai yang valid yang ditunjukkan dalam tabel di atas untuk tingkat layanan yang ditentukan.

Model vCore

Tujuan umum - komputasi yang disediakan - Gen4 (bagian 1)

UKURAN MAKSIMAL GP_Gen4_1 GP_Gen4_2 GP_Gen4_3 GP_Gen4_4 GP_Gen4_5 GP_Gen4_6
Ukuran data maks (GB) 1024 1024 1024 1536 1536 1536

Tujuan umum - komputasi yang disediakan - Gen4 (bagian 2)

UKURAN MAKSIMAL GP_Gen4_7 GP_Gen4_8 GP_Gen4_9 GP_Gen4_10 GP_Gen4_16 GP_Gen4_24
Ukuran data maks (GB) 1536 3072 3072 3072 4096 4096

Tujuan umum - komputasi yang disediakan - Gen5 (bagian 1)

UKURAN MAKSIMAL GP_Gen5_2 GP_Gen5_4 GP_Gen5_6 GP_Gen5_8 GP_Gen5_10 GP_Gen5_12 GP_Gen5_14
Ukuran data maks (GB) 1024 1024 1024 1536 1536 1536 1536

Tujuan umum - komputasi yang disediakan - Gen5 (bagian 2)

UKURAN MAKSIMAL GP_Gen5_16 GP_Gen5_18 GP_Gen5_20 GP_Gen5_24 GP_Gen5_32 GP_Gen5_40 GP_Gen5_80
Ukuran data maks (GB) 3072 3072 3072 4096 4096 4096 4096

Tujuan umum - komputasi yang disediakan - Seri Fsv2 (bagian 1)

UKURAN MAKSIMAL GP_Fsv2_8 GP_Fsv2_10 GP_Fsv2_12 GP_Fsv2_14 GP_Fsv2_16 GP_Fsv2_18
Ukuran data maks (GB) 1024 1024 1024 1024 1536 1536

Tujuan umum - komputasi yang disediakan - Seri Fsv2 (bagian 2)

UKURAN MAKSIMAL GP_Fsv2_20 GP_Fsv2_24 GP_Fsv2_32 GP_Fsv2_36 GP_Fsv2_72
Ukuran data maks (GB) 1536 1536 3072 3072 4096

Tujuan umum - komputasi tanpa server - Gen5 (bagian 1)

UKURAN MAKSIMAL GP_S_Gen5_1 GP_S_Gen5_2 GP_S_Gen5_4 GP_S_Gen5_6 GP_S_Gen5_8
Maks vCore 1 2 4 6 8

Tujuan umum - komputasi tanpa server - Gen5 (bagian 2)

UKURAN MAKSIMAL GP_S_Gen5_10 GP_S_Gen5_12 GP_S_Gen5_14 GP_S_Gen5_16
Maks vCore 10 12 14 16

Tujuan umum - komputasi tanpa server - Gen5 (bagian 3)

UKURAN MAKSIMAL GP_S_Gen5_18 GP_S_Gen5_20 GP_S_Gen5_24 GP_S_Gen5_32 GP_S_Gen5_40
Maks vCore 18 20 24 32 40

Bisnis penting - komputasi yang disediakan - Gen4 (bagian 1)

Ukuran komputasi (tujuan layanan) BC_Gen4_1 BC_Gen4_2 BC_Gen4_3 BC_Gen4_4 BC_Gen4_5 BC_Gen4_6
Ukuran data maks (GB) 1024 1024 1024 1024 1024 1024

Bisnis penting - komputasi yang disediakan - Gen4 (bagian 2)

Ukuran komputasi (tujuan layanan) BC_Gen4_7 BC_Gen4_8 BC_Gen4_9 BC_Gen4_10 BC_Gen4_16 BC_Gen4_24
Ukuran data maks (GB) 1024 1024 1024 1024 1024 1024

Bisnis penting - komputasi yang disediakan - Gen5 (bagian 1)

UKURAN MAKSIMAL BC_Gen5_2 BC_Gen5_4 BC_Gen5_6 BC_Gen5_8 BC_Gen5_10 BC_Gen5_12 BC_Gen5_14
Ukuran data maks (GB) 1024 1024 1024 1536 1536 1536 1536

Bisnis penting - komputasi yang disediakan - Gen5 (bagian 2)

UKURAN MAKSIMAL BC_Gen5_16 BC_Gen5_18 BC_Gen5_20 BC_Gen5_24 BC_Gen5_32 BC_Gen5_40 BC_Gen5_80
Ukuran data maks (GB) 3072 3072 3072 4096 4096 4096 4096

Bisnis penting - komputasi yang disediakan - Seri M (bagian 1)

UKURAN MAKSIMAL BC_M_8 BC_M_10 BC_M_12 BC_M_14 BC_M_16 BC_M_18
Ukuran data maks (GB) 512 640 768 896 1024 1152

Bisnis penting - komputasi yang disediakan - Seri M (bagian 2)

UKURAN MAKSIMAL BC_M_20 BC_M_24 BC_M_32 BC_M_64 BC_M_128
Ukuran data maks (GB) 1280 1536 2048 4096 4096

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 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.

UBAH (SERVICE_OBJECTIVE = <tujuan> layanan)
Menentukan ukuran komputasi (tujuan layanan). Contoh berikut mengubah tujuan layanan database Premium menjadi P6:

ALTER DATABASE current
    MODIFY (SERVICE_OBJECTIVE = 'P6');

SERVICE_OBJECTIVE

  • Untuk database tunggal dan terkumpul

    • Menentukan ukuran komputasi (tujuan layanan). Nilai yang tersedia untuk tujuan layanan adalah: S0, , S1, S3S2, S4S6, , BC_GEN4_8P15GP_GEN4_2GP_GEN4_1GP_GEN4_3GP_GEN4_4GP_GEN4_5GP_GEN4_6GP_GEN4_7P11GP_GEN4_8GP_Fsv2_12GP_Fsv2_10GP_Fsv2_8GP_Gen5_80GP_Gen5_40GP_Gen5_32GP_Gen5_20GP_Gen5_24GP_Gen5_16GP_Gen5_18BC_GEN4_2BC_GEN4_3BC_GEN4_1GP_GEN4_24BC_GEN4_4GP_GEN4_16BC_GEN4_5GP_GEN4_10BC_GEN4_6GP_GEN4_9BC_GEN4_7BC_GEN4_9GP_Gen5_14GP_Gen5_10GP_GEN4_7GP_Gen5_12GP_Gen5_8BC_GEN4_24GP_Gen5_2BC_GEN4_16BC_GEN4_10GP_Gen5_4GP_GEN4_8GP_Gen5_6S7S9S12P1P2P4P6GP_Fsv2_14, GP_Fsv2_16, GP_Fsv2_18, GP_Fsv2_20, GP_Fsv2_24, GP_Fsv2_32, GP_Fsv2_36, GP_Fsv2_72, BC_Gen5_2, BC_Gen5_4, BC_Gen5_6, BC_Gen5_8, BC_Gen5_10, BC_Gen5_12, BC_Gen5_14, BC_Gen5_16, BC_Gen5_18, BC_Gen5_20, BC_Gen5_24, BC_Gen5_32,BC_Gen5_40, BC_Gen5_80, BC_M_8, BC_M_10, BC_M_12, BC_M_14, BC_M_16, BC_M_18, BC_M_20, BC_M_24, BC_M_32, BC_M_64, BC_M_128.
  • Untuk database tunggal di tingkat komputasi Tanpa Server

    • Menentukan ukuran komputasi (tujuan layanan). Nilai yang tersedia untuk tujuan layanan adalah: GP_S_Gen5_1, , GP_S_Gen5_2, GP_S_Gen5_4, GP_S_Gen5_8GP_S_Gen5_6, GP_S_Gen5_10, GP_S_Gen5_12, GP_S_Gen5_14, GP_S_Gen5_16, GP_S_Gen5_18, GP_S_Gen5_20, GP_S_Gen5_24, GP_S_Gen5_32, . GP_S_Gen5_40
  • Untuk database tunggal di tingkat layanan Hyperscale

    • Menentukan ukuran komputasi (tujuan layanan). Nilai yang tersedia untuk tujuan layanan adalah: HS_GEN4_1HS_GEN4_8HS_GEN4_16HS_GEN4_4HS_GEN4_2, , HS_GEN4_24, HS_Gen5_2, HS_Gen5_4, HS_Gen5_16HS_Gen5_8, HS_Gen5_24, HS_Gen5_32, HS_Gen5_48, . HS_Gen5_80

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

SECONDARY_TYPE Hanya untuk Azure SQL Database Hyperscale. GEO menentukan geo-replika, NAMED menentukan replika bernama. Defaultnya adalah GEO. Untuk informasi selengkapnya, lihat Replika Sekunder Hyperscale.

Untuk deskripsi tujuan layanan dan informasi selengkapnya tentang kombinasi ukuran, edisi, dan tujuan layanan, lihat Azure SQL Tingkat Layanan Database dan Tingkat Performa, batas sumber daya DTU, dan batas sumber daya vCore. Dukungan untuk tujuan layanan PRS telah dihapus. Untuk pertanyaan, gunakan alias email ini: premium-rs@microsoft.com.

UBAH (SERVICE_OBJECTIVE = ELASTIC_POOL (nama = <elastic_pool_name>)
Untuk menambahkan database yang 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 Membuat dan mengelola kumpulan elastis SQL Database. Untuk menghapus database dari kumpulan elastis, gunakan UBAH 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, menjadikan 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 yang 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.

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

DENGAN SERVICE_OBJECTIVE { S0, , S1, S3S2, S4, S6, S12S9S7, P1, P11P15GP_GEN4_1GP_GEN4_2P6GP_GEN4_4GP_GEN4_3GP_GEN4_5GP_GEN4_6GP_GEN4_7GP_GEN4_8GP_GEN4_7P4GP_GEN4_9GP_GEN4_8GP_GEN4_10GP_GEN4_16GP_GEN4_24BC_GEN4_1BC_GEN4_2P2BC_GEN4_24BC_GEN4_16BC_GEN4_10BC_GEN4_9GP_Gen5_2BC_GEN4_8BC_GEN4_7BC_GEN4_6GP_Gen5_4BC_GEN4_5BC_GEN4_4BC_GEN4_3GP_Gen5_6GP_Gen5_8GP_Gen5_20GP_Gen5_18GP_Gen5_24GP_Gen5_16GP_Gen5_32GP_Gen5_14GP_Gen5_40GP_Gen5_80GP_Gen5_12GP_Gen5_10GP_Fsv2_10GP_Fsv2_12GP_Fsv2_8GP_Fsv2_14, , GP_Fsv2_16GP_Fsv2_18, GP_Fsv2_20, GP_Fsv2_24, GP_Fsv2_32, GP_Fsv2_36, GP_Fsv2_72, GP_S_Gen5_1, GP_S_Gen5_2, GP_S_Gen5_4, GP_S_Gen5_6, GP_S_Gen5_8, GP_S_Gen5_10, GP_S_Gen5_12, GP_S_Gen5_14, GP_S_Gen5_16, GP_S_Gen5_18, GP_S_Gen5_20, GP_S_Gen5_24, GP_S_Gen5_32, GP_S_Gen5_40, BC_Gen5_2, BC_Gen5_4, BC_Gen5_6, BC_Gen5_8, BC_Gen5_10, BC_Gen5_12, BC_Gen5_14, BC_Gen5_16, BC_Gen5_18, BC_Gen5_20, BC_Gen5_24, BC_Gen5_32,BC_Gen5_40, BC_Gen5_80, BC_M_8, BC_M_10, BC_M_12, BC_M_14, BC_M_16, BC_M_18, BC_M_20, BC_M_24, BC_M_32, BC_M_64, BC_M_128 }

Ketika 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. Opsi ini mendukung pembuatan sekunder yang direplikasi secara geografis dengan tingkat layanan yang lebih murah. SERVICE_OBJECTIVE yang ditentukan harus berada dalam edisi yang sama dengan sumbernya. Misalnya, Anda tidak dapat menentukan S0 jika edisinya premium.

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 force failover dan menerima kehilangan data - lalu, 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 jika 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 milik dbmanager 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 database Azure SQL disediakan), admin Azure AD server, anggota peran database dbmanager di master, anggota peran database db_owner dalam database saat ini, atau dbo database.

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 SQL Server Kontributor Azure RBAC. Untuk informasi selengkapnya, kunjungi Peran bawaan Azure RBAC.

Contoh

A. Periksa opsi edisi dan ubah

Mengatur edisi dan ukuran maks 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 sudah ada ke dalam kumpulan bernama pool1:

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

C. Menambahkan Sekunder Geo-Replication

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

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

D. Menghapus Sekunder Geo-Replication

Menghapus database sekunder db1 di server secondaryserver.

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver

E. Failover ke sekunder Geo-Replication

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

ALTER DATABASE db1 FAILOVER

E. Paksa Failover ke sekunder Geo-Replication dengan kehilangan data

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

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS

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

Updates 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

Updates redundansi penyimpanan cadangan database ke zona redundan. Semua cadangan database ini di masa mendatang akan menggunakan pengaturan baru. Ini termasuk pencadangan pemulihan titik waktu dan cadangan retensi jangka panjang (jika dikonfigurasi).

ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE'

Lihat juga

* SQL Managed Instance *  

 

Ringkasan: Azure SQL Managed Instance

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

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

MENGUBAH DATABASE
Artikel saat ini menyediakan sintaksis dan informasi terkait untuk mengatur opsi grup file dan file, untuk mengatur opsi database, dan untuk mengatur tingkat kompatibilitas database.

ALTER DATABASE File dan Filegroup Options
Menyediakan sintaks 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 sintaks dan informasi terkait untuk mengubah atribut database dengan menggunakan opsi SET ALTER DATABASE.

UBAH Tingkat Kompatibilitas DATABASE
Menyediakan sintaks 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
  | 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>
      { 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 Instans Terkelola dibersihkan dengan mengatur salah satu opsi berikut.

    • COLLATE
    • UBAH FILEGROUP DEFAULT
    • UBAH READ_ONLY GRUPFILE
    • UBAH READ_WRITE FILEGROUP
    • 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 dibersihkan dalam singgahan rencana, log kesalahan SQL Server berisi pesan informasi berikut: " SQL Server telah mengalami %d kemunculan cachestore flush untuk cachestore '%s' (bagian dari cache rencana) karena beberapa operasi pemeliharaan database atau konfigurasi ulang". Pesan ini dicatat setiap lima menit selama cache dihapus dalam interval waktu tersebut. Cache paket juga dibersihkan 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 memegang 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 cara mengatur penyetelan otomatis dan cara menambahkan file dalam instans terkelola.

ALTER DATABASE WideWorldImporters
  SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);

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

Lihat juga

* Azure Synapse
Analitik *
 

 

Ringkasan: Azure Synapse Analytics

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

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

ALTER DATABASE SET Options 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 dalam 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

UKURAN MAKSIMAL

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 diperbolehkan 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 (DWU).

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 peran tersebut dbmanager .

Keterangan Umum

Database saat ini harus merupakan 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 detail selengkapnya, lihat Meningkatkan Performa Kueri dengan Tingkat Kompatibilitas 130 di Azure SQL Database.

Catatan

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

Batasan dan Pembatasan

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 kolater database.

Contoh

Sebelum Anda menjalankan contoh-contoh ini, pastikan database yang Anda ubah bukan database saat ini. Database saat ini harus merupakan 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 AdventureWorks2012
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' );

Lihat juga

* Analitik
Sistem Platform (PDW) *
 

 

Gambaran Umum: Sistem Platform Analitik

Memodifikasi opsi ukuran database maksimum untuk tabel yang direplikasi, tabel terdistribusi, dan log transaksi di PDW. 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 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 = { ON | OFF }
Updates opsi AUTOGROW. Saat 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 merencanakan ruang penyimpanan appliance, Anda harus 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 dalam 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 dalam appliance.

ENKRIPSI { ON | OFF }
Mengatur database yang akan dienkripsi (ON) atau tidak dienkripsi (OFF). 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 | OFF }
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 | OFF }
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 | OFF }
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 is not supported in PDW. Administrator sistem dapat mengaktifkan statistik otomatis dengan mengaktifkan pengalihan fitur AutoStatsEnabled.

Keterangan Umum

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

Batasan dan Pembatasan

Operasi yang berkembang dan menyusut 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 sedang 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.

Menentukan 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 menetapkan 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 0 berarti 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;

Lihat juga