Tabel

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Tabel adalah objek database yang berisi semua data dalam database. Dalam tabel, data diatur secara logis dalam format baris dan kolom yang mirip dengan spreadsheet. Setiap baris mewakili rekaman unik, dan setiap kolom mewakili bidang dalam rekaman. Misalnya, tabel yang berisi data karyawan untuk perusahaan mungkin berisi baris untuk setiap karyawan dan kolom yang mewakili informasi karyawan seperti nomor karyawan, nama, alamat, jabatan, dan nomor telepon rumah.

  • Jumlah tabel dalam database hanya dibatasi oleh jumlah objek yang diizinkan dalam database (2.147.483.647). Tabel standar yang ditentukan pengguna dapat memiliki hingga 1.024 kolom. Jumlah baris dalam tabel hanya dibatasi oleh kapasitas penyimpanan server.

  • Anda bisa menetapkan properti ke tabel dan ke setiap kolom dalam tabel untuk mengontrol data yang diizinkan dan properti lainnya. Misalnya, Anda dapat membuat batasan pada kolom untuk melarang nilai null atau memberikan nilai default jika nilai tidak ditentukan, atau Anda dapat menetapkan batasan kunci pada tabel yang memberlakukan keunikan atau menentukan hubungan antar tabel.

  • Data dalam tabel dapat dikompresi baik menurut baris atau menurut halaman. Pemadatan data dapat memungkinkan lebih banyak baris disimpan di halaman. Untuk informasi selengkapnya, lihat Kompresi Data.

Jenis Tabel

Selain peran standar tabel dasar yang ditentukan pengguna, SQL Server menyediakan jenis tabel berikut yang melayani tujuan khusus dalam database.

Tabel Yang Dipartisi

Tabel yang dipartisi adalah tabel yang datanya dibagi secara horizontal menjadi satuan yang mungkin tersebar di lebih dari satu grup file dalam database. Pemartisian membuat tabel atau indeks besar lebih mudah dikelola dengan memungkinkan Anda mengakses atau mengelola subset data dengan cepat dan efisien, sambil mempertahankan integritas koleksi keseluruhan. Secara default, SQL Server mendukung hingga 15.000 partisi. Untuk informasi selengkapnya, lihat Tabel dan Indeks yang Dipartisi.

Tabel Sementara

Tabel sementara disimpan dalam tempdb. Ada dua jenis tabel sementara: lokal dan global. Mereka berbeda satu sama lain dalam nama, visibilitas, dan ketersediaan mereka. Tabel sementara lokal memiliki tanda angka tunggal (#) sebagai karakter pertama dari namanya; mereka hanya terlihat oleh koneksi saat ini untuk pengguna, dan mereka dihapus ketika pengguna terputus dari instans SQL Server. Tabel sementara global memiliki dua tanda angka (##) sebagai karakter pertama dari namanya; mereka terlihat oleh pengguna mana pun setelah dibuat, dan mereka dihapus saat semua pengguna merujuk tabel terputus dari instans SQL Server.

Pengurangan kompilasi ulang untuk beban kerja menggunakan tabel sementara di beberapa cakupan

SQL Server 2019 (15.x) di bawah semua tingkat kompatibilitas database mengurangi kompilasi ulang untuk beban kerja menggunakan tabel sementara di beberapa cakupan. Fitur ini juga diaktifkan di Azure SQL Database di bawah tingkat kompatibilitas database 150 untuk semua model penyebaran. Sebelum fitur ini, saat mereferensikan tabel sementara dengan pernyataan bahasa manipulasi data (DML) (SELECT, INSERT, UPDATE, DELETE), jika tabel sementara dibuat oleh batch cakupan luar, ini akan menghasilkan kompilasi ulang pernyataan DML setiap kali dijalankan. Dengan peningkatan ini, SQL Server melakukan pemeriksaan ringan tambahan untuk menghindari kompilasi ulang yang tidak perlu:

  • Periksa apakah modul cakupan luar yang digunakan untuk membuat tabel sementara pada waktu kompilasi sama dengan yang digunakan untuk eksekusi berturut-turut.
  • Lacak setiap perubahan bahasa definisi data (DDL) yang dibuat pada kompilasi awal dan bandingkan dengan operasi DDL untuk eksekusi berturut-turut.

Hasil akhirnya adalah pengurangan kompilasi asing dan overhead CPU.

Tabel Sistem

SQL Server menyimpan data yang menentukan konfigurasi server dan semua tabelnya dalam sekumpulan tabel khusus yang dikenal sebagai tabel sistem. Pengguna tidak dapat langsung mengkueri atau memperbarui tabel sistem. Informasi dalam tabel sistem tersedia melalui tampilan sistem. Untuk informasi selengkapnya, lihat Tampilan Sistem (Transact-SQL).

Tabel Lebar

Tabel lebar menggunakan kolom jarang untuk meningkatkan total kolom yang bisa dimiliki tabel menjadi 30.000. Kolom jarang adalah kolom biasa yang memiliki penyimpanan yang dioptimalkan untuk nilai null. Kolom jarang mengurangi persyaratan ruang untuk nilai null dengan biaya lebih banyak overhead untuk mengambil nilai nonnull. Tabel lebar telah menentukan kumpulan kolom, yang merupakan representasi XML yang tidak ditata yang menggabungkan semua kolom jarang tabel ke dalam output terstruktur. Jumlah indeks dan statistik juga masing-masing ditingkatkan menjadi 1.000 dan 30.000. Ukuran maksimum baris tabel lebar adalah 8.019 byte. Oleh karena itu, sebagian besar data dalam baris tertentu harus NULL. Jumlah maksimum kolom yang tidak terpisah ditambah kolom komputasi dalam tabel lebar tetap 1.024.

Tabel lebar memiliki implikasi performa berikut.

  • Tabel lebar dapat meningkatkan biaya untuk mempertahankan indeks pada tabel. Kami menyarankan agar jumlah indeks pada tabel lebar dibatasi pada indeks yang diperlukan oleh logika bisnis. Ketika jumlah indeks meningkat, begitu juga persyaratan waktu kompilasi dan memori DML. Indeks non-kluster harus difilter indeks yang diterapkan ke subset data. Untuk informasi selengkapnya, lihat Membuat Indeks Yang Difilter.

  • Aplikasi dapat secara dinamis menambahkan dan menghapus kolom dari tabel lebar. Saat kolom ditambahkan atau dihapus, rencana kueri yang dikompilasi juga tidak valid. Kami menyarankan agar Anda merancang aplikasi agar sesuai dengan beban kerja yang diproyeksikan sehingga perubahan skema diminimalkan.

  • Saat data ditambahkan dan dihapus dari tabel yang luas, performa dapat terpengaruh. Aplikasi harus dirancang untuk beban kerja yang diproyeksikan sehingga perubahan pada data tabel diminimalkan.

  • Batasi eksekusi pernyataan DML pada tabel lebar yang memperbarui beberapa baris kunci pengklusteran. Pernyataan ini dapat memerlukan sumber daya memori yang signifikan untuk dikompilasi dan dijalankan.

  • Beralih operasi partisi pada tabel lebar bisa lambat dan mungkin memerlukan memori dalam jumlah besar untuk diproses. Persyaratan performa dan memori sebanding dengan jumlah total kolom di partisi sumber dan target.

  • Perbarui kursor yang memperbarui kolom tertentu dalam tabel lebar harus mencantumkan kolom secara eksplisit dalam klausa FOR UPDATE. Ini akan membantu mengoptimalkan performa saat Anda menggunakan kursor.

Tugas Tabel Umum

Tabel berikut ini menyediakan tautan ke tugas umum yang terkait dengan pembuatan atau modifikasi tabel.

Tugas Tabel Topik
Menjelaskan cara membuat tabel. Buat Tabel (Mesin Database)
Menjelaskan cara menghapus tabel. Hapus Tabel (Mesin Database)
Menjelaskan cara membuat tabel baru yang berisi beberapa atau semua kolom dalam tabel yang sudah ada. Tabel Duplikat
Menjelaskan cara mengganti nama tabel. Ganti Nama Tabel (Mesin Database)
Menjelaskan cara menampilkan properti tabel. Menampilkan Definisi Tabel
Menjelaskan cara menentukan apakah objek lain seperti tampilan atau prosedur tersimpan bergantung pada tabel. Menampilkan Dependensi Tabel

Tabel berikut ini menyediakan tautan ke tugas umum yang terkait dengan pembuatan atau pengubahan kolom dalam tabel.

Tugas Kolom Topik
Menjelaskan cara menambahkan kolom ke tabel yang sudah ada. Menambahkan Kolom ke Tabel (Mesin Database)
Menjelaskan cara menghapus kolom dari tabel. Menghapus Kolom dari Tabel
Menjelaskan cara mengubah nama kolom. Ganti Nama Kolom (Mesin Database)
Menjelaskan cara menyalin kolom dari satu tabel ke tabel lainnya, menyalin hanya definisi kolom, atau definisi dan data. Salin Kolom dari Satu Tabel ke Tabel Lain (Mesin Database)
Menjelaskan cara mengubah definisi kolom, dengan mengubah jenis data atau properti lainnya. Ubah Kolom (Mesin Database)
Menjelaskan cara mengubah urutan munculnya kolom. Mengubah Urutan Kolom dalam Tabel
Menjelaskan cara membuat kolom komputasi dalam tabel. Tentukan Kolom Komputasi dalam Tabel
Menjelaskan cara menentukan nilai default untuk kolom. Nilai ini digunakan jika nilai lain tidak disediakan. Tentukan Nilai Default untuk Kolom

Lihat juga

Batasan Kunci Primer dan Asing Batasan Unik dan Batasan Pemeriksaan