Artikel ini akan memperkenalkan masalah praktis yang sering dihadapi administrator selama proses inisialisasi database - cara mengimpor data dalam jumlah besar ke dalam sistem database. Selama proses inisialisasi database, masalah praktis yang perlu dihadapi administrator adalah bagaimana mengimpor data dalam jumlah besar ke dalam sistem database. Beberapa alat impor dan ekspor data berkapasitas besar disediakan di database SQL Server untuk digunakan oleh administrator database. Misalnya, administrator dapat menggunakan alat utilitas bcp untuk mengekspor data dalam volume besar dan mengimpor data dalam volume besar serta menghasilkan file yang diformat. Misalnya, pernyataan penyisipan massal dapat digunakan untuk mengimpor data berkapasitas besar langsung dari file data ke dalam tabel database atau tampilan yang tidak dipartisi, dll.
Meskipun utilitas ini disediakan dalam database SQL Server. Namun, administrator masih perlu berhati-hati tentang pekerjaan ini dalam pekerjaan sebenarnya. Secara khusus, dalam proses impor dan ekspor data berkapasitas besar, Anda perlu memperhatikan aspek-aspek berikut.
1. Coba gunakan alat yang disediakan sistem untuk mengimpor dan mengekspor data berkapasitas besar.
Beberapa alat praktis yang disebutkan penulis di atas memiliki ciri yang sama, yaitu akan melakukan optimasi tertentu pada data berkapasitas besar selama proses impor. Misalnya, ini akan menstandardisasi format beberapa data, menghemat waktu dalam impor dan ekspor, dll. Namun saat menggunakan alat ini, terdapat satu perbedaan dengan alat impor dan ekspor data biasa lainnya, yaitu operasi impor berkapasitas besar tidak mendukung impor data dalam file yang dibatasi koma, yang sering disebut sebagai file teks. Meskipun saat ini administrator juga dapat menggunakan alat lain untuk mengimpor data berkapasitas besar dalam format file, saya biasanya tidak merekomendasikan hal ini. Karena tools lain tidak mendukung fungsi optimasi pada saat proses import. Oleh karena itu, penulis merekomendasikan penggunaan alat lain, seperti ACCESS dan alat perantara lainnya, untuk terlebih dahulu mengubah data dalam file teks menjadi bentuk tabel biasa, dan kemudian menggunakan alat di atas untuk mengimpornya ke dalam sistem. Meskipun hal ini akan menambah beban kerja, namun dapat menjamin kualitas data berkapasitas besar. Oleh karena itu, dalam pekerjaan saya yang sebenarnya, jika pengguna mengalami masalah seperti ini, saya sangat menyarankan mereka menggunakan alat yang disediakan oleh sistem untuk mengimpor dan mengekspor data berkapasitas besar.
Selain itu, menggunakan file yang diformat untuk meningkatkan standarisasi data berkapasitas besar juga merupakan pilihan yang baik. Beberapa alat impor dan ekspor berkapasitas besar yang disebutkan di atas mendukung penggunaan file format khusus untuk menyimpan informasi format setiap bidang dalam file data asli. File format juga dapat berisi informasi tentang tabel database yang sesuai. File format dapat digunakan untuk menyediakan semua informasi pemformatan yang diperlukan untuk mengekspor data secara massal dan mengimpor data secara massal ke dalam instans database. Dalam istilah awam, file format menyediakan cara yang fleksibel untuk menafsirkan format data dalam file data selama impor dan untuk memformat data dalam file data selama ekspor. Fleksibilitas ini menghilangkan kebutuhan untuk menulis kode khusus untuk menafsirkan data atau memformat ulang data untuk memenuhi kebutuhan khusus database atau aplikasi eksternal. Jika file yang diformat digunakan secara fleksibel, pengguna dapat langsung mengekspor atau mengimpor data berkapasitas besar dalam format yang diperlukan tanpa harus melakukan penyesuaian format tambahan setelahnya.
2. Pilih mode operasi log database yang sesuai
Seperti yang diketahui semua orang, setiap perubahan yang dilakukan pengguna dalam database akan dicatat dalam log yang relevan. Tidak terkecuali mengimpor dan mengekspor data dalam jumlah besar. Namun karena data berkapasitas besar relatif besar maka akan menempati fungsi log transaksi yang relatif besar. Oleh karena itu, penulis menyarankan sebelum pengguna mengimpor data berkapasitas besar, yang terbaik adalah memilih mode operasi log database yang sesuai. Pendekatan penulis adalah jika pengguna perlu mengimpor data berkapasitas besar, yang terbaik adalah memilih mode pemulihan log berkapasitas besar. Tunggu hingga pekerjaan impor selesai, lalu kembali ke mode awal.
Hal ini terutama karena dalam mode log berkapasitas besar, dukungan untuk pekerjaan impor data berkapasitas besar relatif baik. Dibandingkan dengan model pemulihan yang dicatat dalam log lainnya (seperti model pemulihan penuh), model pemulihan yang dicatat secara massal hanya mencatat sedikit operasi massal. Karena alasan ini, model pemulihan operasi log berkapasitas besar melindungi operasi bervolume besar dari kegagalan perangkat keras, memberikan kinerja yang lebih baik, dan menggunakan ruang log minimal. Oleh karena itu, menggunakan pemulihan yang dicatat secara massal membantu mencegah log transaksi kehabisan ruang karena pemulihan yang dicatat secara massal tidak menyisipkan baris log. Mode operasi log massal ini sangat cocok untuk database yang menggunakan model pemulihan penuh. Model pemulihan yang dicatat secara massal berguna saat melakukan operasi massal pada tabel tanpa indeks.
Namun, mode pengoperasian log berkapasitas besar juga memiliki risiko tertentu. Model pemulihan seperti log massal meningkatkan risiko kehilangan data untuk operasi penyalinan massal ini. Karena mode operasi pencatatan massal akan mencegah sistem database menangkap perubahan yang dilakukan pada setiap transaksi satu per satu. Jika cadangan log berisi operasi log massal, Anda tidak dapat memulihkan ke suatu titik waktu dalam cadangan log tersebut; Anda hanya dapat memulihkan seluruh cadangan log. Juga dalam model pemulihan pencatatan massal, jika cadangan log mencakup operasi massal apa pun, cadangan log akan berisi catatan log dan halaman data yang diubah oleh operasi massal. Hal ini penting untuk menangkap hasil operasi logging massal. Area data yang digabungkan dapat membuat cadangan log menjadi sangat besar. Selain itu, pencadangan log memerlukan akses ke file data yang berisi transaksi log dalam jumlah besar. Jika file database yang terpengaruh tidak dapat diakses, log transaksi tidak akan dicadangkan dan semua operasi yang dilakukan di log ini akan hilang. Oleh karena itu, mode pencadangan log berkapasitas besar bukanlah mode log aman.
3. Pertimbangkan apakah Anda perlu menghapus sementara indeks tabel terlebih dahulu
Indeks adalah file khusus, dan perannya dalam database sangat penting. Sederhananya, jika database diibaratkan sebuah buku, maka indeksnya ibarat daftar isi buku tersebut. Indeks berisi petunjuk referensi ke semua catatan dalam tabel data. Tidak ada keraguan bahwa indeks dapat meningkatkan kinerja database. Namun pengindeksan tidak dapat memberikan efek positif pada setiap kesempatan. Dalam beberapa kasus khusus, hal ini akan mengurangi kinerja beberapa operasi, seperti impor data berkapasitas besar.
Indeks dapat mempercepat operasi pengambilan data, namun dapat memperlambat operasi modifikasi data. Karena setiap kali record data diubah atau disisipkan, indeks harus di-refresh. Dengan kata lain, jika satu juta record dimasukkan, indeks harus di-refresh satu juta kali. Terlihat ketika data berkapasitas besar diimpor, indeks akan menghabiskan banyak sumber daya database, sehingga menurunkan kinerja database. Jika ada indeks di tabel tujuan, hal ini tidak hanya akan mempengaruhi kecepatan impor data dalam jumlah besar ke database, namun juga mengurangi kinerja akses normal pengguna lain ke database.
Oleh karena itu, saran penulis adalah jika data pada tabel yang akan diimpor tidak banyak, sebaiknya indeksnya dihapus terlebih dahulu untuk meningkatkan kinerja impor data berkapasitas besar. Aktifkan kembali pengindeksan setelah mengimpor. Namun jika pada tabel sudah banyak data yang perlu diimpor, dan data yang perlu diimpor mungkin sama atau kurang dari data yang ada, maka indeks tidak perlu dihapus. Menghapus indeks saat ini akan menimbulkan efek sebaliknya. Karena waktu yang diperlukan sistem database untuk membangun kembali indeks mungkin lebih lama daripada waktu yang dihemat selama operasi impor massal. Saat ini, administrator akan kehilangan lebih dari keuntungan dengan menghapus indeks tabel target.
4. Lakukan backup database segera setelah data diimpor
Sama seperti membangun objek database, setelah mengimpor data berkapasitas besar ke dalam sistem database, administrator harus membuat cadangan database yang ada secara tepat waktu. Karena bantuan tepat waktu dari alat impor sistem berkapasitas besar, pekerjaan impor data ini masih sangat membosankan dan memakan waktu. Oleh karena itu, setelah data berkapasitas besar berhasil diimpor ke sistem database, administrator harus melakukan backup database secara tepat waktu. Apa yang penulis ingin ingatkan kepada semua orang di sini adalah bahwa metode pencadangan seringkali berbeda dalam mode log operasi yang berbeda.
Setelah mengimpor data berkapasitas besar, administrator perlu membuat cadangan database. Saran penulis adalah jika administrator mengadopsi model pemulihan log sederhana pada saat itu, administrator harus melakukan pencadangan penuh atau pencadangan diferensial segera setelah operasi impor massal selesai (jika waktu mengizinkan, yang terbaik adalah melakukan pencadangan penuh) . Dan jika administrator database mengadopsi model pemulihan log berkapasitas besar atau model pemulihan penuh pada saat itu, jika tidak ada banyak waktu atau khawatir bahwa pencadangan penuh akan mempengaruhi akses pengguna pada saat itu, maka hanya melakukan pencadangan log sudah cukup. Jika server database belum menjadi server produksi (yaitu, masih belum ada pengguna yang menggunakannya), lebih aman untuk melakukan pencadangan penuh pada database.
5. Kesalahan umum
Mungkin ada dua kesalahan paling umum saat mengimpor data berkapasitas besar.
Pertama, format file yang disediakan salah. Seperti disebutkan di atas, biasanya alat impor massal yang disediakan oleh database tidak mendukung file teks. Administrator perlu melakukan konversi sebelumnya untuk tujuan ini. Kedua, sadari bahwa karakter tersembunyi dapat menimbulkan masalah. Banyak perangkat lunak dan editor teks menampilkan karakter tersembunyi. Karakter tersembunyi ini biasanya terletak di akhir file data. Selama operasi impor massal, karakter tersembunyi dalam file data dapat menyebabkan masalah yang tidak terduga seperti kesalahan karakter nol yang tidak terduga, dll. Kesalahan ini mudah untuk dihindari. Selama administrator database mencari dan menghapus semua karakter tersembunyi sebelum mengimpor data. Faktanya, masalah ini tidak hanya akan ditemui pada saat impor data berkapasitas besar, tetapi juga pada saat impor data dalam jumlah kecil.