Bagikan melalui


Performa tabel temporal versi sistem yang dioptimalkan memori

Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Database Azure SQL Managed Instance yang lebih baru

Artikel ini membahas beberapa pertimbangan performa tertentu saat menggunakan tabel temporal yang dioptimalkan memori versi sistem.

Saat Anda menambahkan penerapan versi sistem ke tabel non-temporal yang ada, harapkan dampak performa pada operasi pembaruan dan penghapusan, karena tabel riwayat diperbarui secara otomatis.

Pertimbangan performa

Setiap pembaruan dan penghapusan direkam dalam tabel riwayat memori internal yang dioptimalkan. Anda mungkin mengalami konsumsi memori yang tidak terduga jika beban kerja Anda menggunakan dua operasi tersebut secara besar-besaran. Oleh karena itu kami menyarankan Anda pertimbangan berikut:

  • Jangan melakukan penghapusan besar-besaran dari tabel saat ini dalam satu langkah. Pertimbangkan untuk menghapus data dalam beberapa batch, dengan data yang dipanggil secara manual di antaranya, dengan sp_xtp_flush_temporal_history, atau saat SYSTEM_VERSIONING = OFF.

  • Jangan melakukan pembaruan tabel besar sekaligus, karena dapat mengakibatkan konsumsi memori yang dua kali lipat jumlah memori yang diperlukan untuk memperbarui tabel yang dioptimalkan memori non-temporal. Konsumsi memori ganda ini bersifat sementara, karena tugas flush data bekerja secara teratur untuk menjaga konsumsi memori tabel penahapan internal dalam batas yang diproyeksikan dalam keadaan stabil. Batasnya adalah 10 persen dari konsumsi memori tabel temporal saat ini. Pertimbangkan untuk melakukan pembaruan besar-besaran dalam beberapa batch, atau saat SYSTEM_VERSIONING = OFF, seperti menggunakan pembaruan untuk mengatur default untuk kolom yang baru ditambahkan.

Periode aktivasi untuk tugas flush data tidak dapat dikonfigurasi, tetapi Anda dapat menjalankan sp_xtp_flush_temporal_history secara manual sesuai kebutuhan.

Pertimbangkan untuk menggunakan penyimpan kolom berkluster sebagai opsi penyimpanan untuk tabel riwayat berbasis disk, terutama jika Anda berencana untuk menjalankan kueri analitik pada data historis yang menggunakan fungsi agregat atau windowing. Dalam hal ini, indeks penyimpan kolom berkluster adalah pilihan optimal untuk tabel riwayat Anda. Indeks penyimpan kolom berkluster menyediakan kompresi data yang baik, dan berulah dengan cara yang mudah disisipkan, selaras dengan cara data riwayat dihasilkan.