Saat kita mengembangkan SQL, kita akan menemukan bahwa terkadang eksekusi asp lambat. Kita dapat menggunakan metode berikut untuk meningkatkan efisiensi eksekusi.
[b]Metode 1: Coba gunakan SQL yang kompleks daripada sekumpulan SQL sederhana[/b]
Untuk transaksi yang sama, SQL yang kompleks dapat diselesaikan lebih efisien daripada sekumpulan SQL sederhana. Jika ada banyak query, Anda harus pandai menggunakan JOIN.
oRs=oConn.Execute(Pilih * DARI Buku)
sementara bukan ors.Eof
strSQL = Pilih * DARI Penulis Dimana AuthorID=&oRs(AuthorID) ors2=oConn.Execute(strSQL)
Response.tulis ors(Judul)&>>&oRs2(Nama)&<br>
ors.MoveNext()
pergi ke
lebih lambat dari kode berikut:
strSQL=Pilih Buku.Judul,Penulis.Nama DARI Buku GABUNG Penulis DI Authors.AuthorID=Books.AuthorID
ors=oConn.Jalankan(strSQL)
sementara bukan ors.Eof
Response.tulis ors(Judul)&>>&oRs(Nama)&<br>
ors.MoveNext()
pergi ke
[b]Metode 2: Cobalah untuk menghindari penggunaan Recordset yang dapat diupdate[/b]
oRs=oConn.Execute(Pilih * DARI Penulis Dimana AuthorID=17,3,3)
ors(Nama)=Manusia Gelap
ors.Perbarui()
lebih lambat dari kode berikut:
strSQL = Perbarui Penulis SET Nama='DarkMan' Dimana AuthorID=17
oConn.Jalankan strSQL
[b]Metode 3: Saat memperbarui database, coba gunakan pembaruan batch[/b]
Membentuk semua SQL menjadi satu batch besar SQL dan menjalankannya sekaligus; ini jauh lebih efisien daripada memperbarui data satu per satu. Ini juga akan lebih memenuhi kebutuhan pemrosesan transaksi Anda:
strSQL=
strSQL=strSQL&ATUR XACT_ABORT AKTIF/n;
strSQL=strSQL&MULAI TRANSAKSI/n;
strSQL=strSQL&Masukkan KE pesanan(OrdID,CustID,OrdDat) VALUES('9999','1234',GETDATE())/n;
strSQL=strSQL&Masukkan KE orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','01','G4385',5)/n;
strSQL=strSQL&Masukkan KE orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','02','G4726',1)/n;
strSQL=strSQL&TRANSAKSI KOMITMEN/n;
strSQL=strSQL&SETEL XACT_ABORT MATI/n;
oConn.Jalankan(strSQL);
Diantaranya, pernyataan SET XACT_ABORT OFF memberitahu SQL Server bahwa jika terjadi kesalahan selama pemrosesan transaksi berikutnya, transaksi yang telah selesai akan dibatalkan.
[b]Metode 4, indeks basis data[/b]
Untuk bidang-bidang yang akan muncul di klausa Where, Anda harus mempertimbangkan pengindeksan terlebih dahulu; bidang-bidang yang perlu diurutkan juga harus dipertimbangkan.
Cara membuat indeks di MS Access: Pilih tabel yang perlu diindeks di Access, klik Desain, lalu atur indeks bidang terkait.
Cara membuat indeks di MS SQL Server: Di SQL Server Manager, pilih tabel yang sesuai, lalu desain tabel, klik kanan, pilih Properties, dan pilih indeks/kunci
[b]Metode 5: Hindari membuat bidang Teks terlalu besar[/b]
Ketika ukuran nilai string tidak tetap, menggunakan varchar lebih baik daripada menggunakan char. Saya pernah melihat contoh program di mana field didefinisikan sebagai TEXT(255), namun nilainya seringkali hanya 20 karakter. Tabel data ini memiliki 50 ribu catatan, membuat database ini sangat besar, dan database yang besar pasti akan lebih lambat.