Я бы рекомендовал установить процедуру доступа к данным, которая будет использоваться для всего сайта.
Эта подпрограмма / класс / или все, что вам нравится, может регистрировать в базе данных или журнале все «попадания», их длительность, ошибку (есть), время ожидания и т. Д.
Если вы запрограммируете это правильно, вы сможете узнать, сколько посещений БД / загрузки страницы, avg (DBHit) +, вы получите в качестве бесплатного бонуса «самый длинный SProc, самый короткий, чаще называемый».
Положительной стороной этого является то, что вам не нужно изменять какой-либо хранимый процесс, и вы можете иметь небольшую «обертку» для доступа к БД.
Для "Длительность на страницу", если вы перейдете в Google Analytics, вы не сможете объединить информацию обратно с тем, что вы получили на сервере базы данных. Поэтому я бы рекомендовал регистрировать каждый доступ к странице в БД.
Затем вы можете сделать вывод, что Page1.StartTime = getdate (), Page1.EndTime = (page2.Starttime-1 или session.log_off_time), например. [Это немного базово, но в зависимости от вашей среды вы можете улучшить его.]