Beerfoth (оригинальная работа)
Я написал простую гостевую книгу, используя sql-сервер и asp. Путем постоянных попыток я обнаружил, что существуют некоторые различия в методах выполнения и времени при отображении сообщений на страницах.
Давайте посмотрим на сравнение времени нескольких методов путем сравнения.
Во-первых, используйте хранимые процедуры для разбиения по страницам. Эта ситуация делится на два метода:
Первый — использовать объект команды следующим образом:
Set Cmd=server.CreateObject("Adodb.Command").
Cmd.ActiveConnection=подключение
Cmd.CommandText="ycuu_gb_getmsg"
Cmd.CommandType=4'adCmdStoredProc
cmd.prepared=истина'
set param=Cmd.CreateParameter("@iPageNo",adInteger,1,2,Page)
Cmd.Parameters.Добавить параметр
set param=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Cmd.Parameters.Добавить параметр
установить rs=Cmd.execute
Второй метод заключается в непосредственном выполнении с использованием метода выполнения объекта соединения следующим образом:
set rs=conn.execute ("execute ycuu_gb_getmsg "&page&", "&pagesizeConst)
Во-вторых, не используйте хранимые процедуры, напрямую используйте функцию ADODB.RecordSet для подкачки, конкретный код выглядит следующим образом:
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "Выбрать * ИЗ Гостевой книги Упорядочить по дате и времени Desc"
rs.open sql,conn,1,1
rs.pagesize = 150'Количество сообщений, отображаемых на каждой странице,
итого = rs.RecordCount
mypagesize = rs.pagesize
rs.absolutepage=page
Чтобы более наглядно показать скорость, я увеличил количество сообщений, отображаемых на каждой странице, до 150 (на самом деле я бы, конечно, не ставил такое большое значение). Что касается конфигурации моей машины, я ее опущу, поскольку она предназначена главным образом для сравнения скорости.
Было обнаружено, что время выполнения следующее:
Первый тип: стабильно между 0,1953125 секунды и 0,2109375 секунды, среднее значение составляет примерно: 0,20 секунды. Второй
тип: стабильно между 0,1716875 секунды и 0,1857 секунды, среднее значение примерно: 0,177.
Третий типсекунд
: стабильный между 0,4375 и 0,4632 секунды, среднее значение составляет около: 0,45 секунды.
Однако, когда количество прочитанных записей равно 20, результаты будут следующими:
Было обнаружено, что время выполнения следующее:
Первый тип: стабильный между 0,0390625 секунды
и 0,0546875 секунды, среднее значение составляет около: 0,045 секунды. Второй тип: стабильный между 0,046875 секунды и 0,0546875 секунды, среднее значение составляет примерно Да: 0,050 секунды.
Третий тип: стабильно от 0,09375 секунды до 0,1015625 секунды. Среднее значение составляет около: 0,97 секунды.
С этой точки зрения кажется, что между двумя методами conn.execute и нет большой разницы
.команда.выполнить.
Метод вызова первого кажется проще.
В то же время здесь видно, что скорость подкачки хранимой процедуры действительно намного выше, чем скорость подкачки набора записей.
PS: Впервые публикую статью, вау вау, мне действительно сложно написать хорошую статью, буду усердно работать в будущем. Надеюсь, на этот раз все простят меня за то, что я плохо пишу. Кстати, еще хочу спросить у вас, герои, какой из двух методов conn.execute и command.execute лучше, хаха, ведь все, что я нашел в Интернете, — это последний метод выполнения хранимых процедур. Не знаю, почему я не использую простой вариант, как раньше.