Когда мы будем разрабатывать SQL, мы обнаружим, что иногда выполнение asp происходит медленно. Для повышения эффективности выполнения мы можем использовать следующие методы.
[b]Метод 1: попробуйте использовать сложный SQL вместо набора простых SQL[/b]
Для одной и той же транзакции сложный SQL-код может быть выполнен более эффективно, чем набор простых SQL-запросов. При наличии нескольких запросов вы должны уметь использовать JOIN.
oRs=oConn.Execute(выберите * ИЗ книг)
пока не орс.Эоф
strSQL = Select * FROM Authors Где AuthorID=&oRs(AuthorID) ors2=oConn.Execute(strSQL)
Response.write ors(Заголовок)&>>&oRs2(Имя)&<br>
или.MoveNext()
идти
медленнее, чем следующий код:
strSQL=Выбрать Books.Title,Authors.Name ИЗ Книг ПРИСОЕДИНЯЙТЕСЬ К авторам ON Authors.AuthorID=Books.AuthorID
ors=oConn.Execute(strSQL)
пока не орс.Эоф
Response.write ors(Title)&>>&oRs(Name)&<br>
или.MoveNext()
идти
[b]Метод 2: старайтесь избегать использования обновляемого набора записей[/b]
oRs=oConn.Execute (выберите * ОТ авторов, где AuthorID=17,3,3)
ors(Имя)=Человек Тьмы
или.Обновить()
медленнее, чем следующий код:
strSQL = Авторы обновлений SET Name='DarkMan' Где AuthorID=17
oConn.Execute strSQL
[b]Метод 3. При обновлении базы данных попробуйте использовать пакетные обновления[/b]
Сформируйте весь SQL в один большой пакетный SQL и запустите его сразу, это гораздо эффективнее, чем обновлять данные по одному; Это также лучше удовлетворит ваши потребности в обработке транзакций:
стрSQL=
strSQL=strSQL&SET XACT_ABORT ON/n;
strSQL=strSQL&BEGIN TRANSACTION/n;
strSQL=strSQL&Insert INTOorders(OrdID,CustID,OrdDat) VALUES('9999','1234',GETDATE())/n;
strSQL=strSQL&Insert INTO orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','01','G4385',5)/n;
strSQL=strSQL&Insert INTO orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','02','G4726',1)/n;
strSQL=strSQL&COMMIT TRANSACTION/n;
strSQL=strSQL&SET XACT_ABORT OFF/n;
oConn.Execute(strSQL);
Среди них оператор SET XACT_ABORT OFF сообщает SQL Server, что если во время следующей обработки транзакции возникнет ошибка, завершенная транзакция будет отменена.
[b]Метод 4, индекс базы данных[/b]
Для тех полей, которые появятся в предложении Where, следует сначала рассмотреть вопрос об индексации тех полей, которые необходимо отсортировать;
Как создать индекс в MS Access: выберите таблицу, которую необходимо проиндексировать в Access, нажмите «Дизайн», а затем установите индекс соответствующего поля.
Как создать индекс в MS SQL Server: в диспетчере SQL Server выберите соответствующую таблицу, затем создайте таблицу, щелкните правой кнопкой мыши, выберите «Свойства» и выберите индексы/ключи.
[b]Метод 5: не делайте текстовое поле слишком большим[/b]
Если размер значения строки не фиксирован, лучше использовать varchar, чем char. Однажды я видел пример программы, в которой поле было определено как ТЕКСТ(255), но его значение часто составляло всего 20 символов. Эта таблица данных содержит 50 тыс. записей, что делает базу данных очень большой, а большие базы данных обязательно будут работать медленнее.