Я вижу SessionGUID и SessionVisitId, почему в одной и той же таблице есть и уникальный идентификатор, и идентификатор (1,1)? Кажется излишним для меня.
Я вижу referer и knownrefererid. Подумайте о том, чтобы получить реферера от известного rerererid, если это возможно. Это поможет уменьшить избыточные записи.
Я вижу ключ кампании и кампанию, если возможно, снова получаю из таблицы кампаний, если это возможно.
Я вижу orderid и orderdate. Я уверен, что вы можете получить дату заказа из таблицы заказов, верно?
Я вижу имя хоста и имя хоста, тебе действительно нужно имя? Обычно имя хоста не имеет большого значения и может легко ввести в заблуждение.
Я вижу несколько дат и отметок времени, есть ли в этом дубликаты?
Как насчет этого столбца SessionLog? Я вижу, что это XML. Это много данных, это те данные, которые у вас уже есть в других столбцах? Если это так, избавьтесь от XML или дублированных столбцов. Используя SQL 2008, вы можете анализировать данные из этого столбца XML при составлении отчетов и, возможно, исключить несколько дополнительных столбцов (таким образом, записывает). Будут ли у вас проблемы в будущем, когда разработчики добавят больше к этому XML? XML для меня просто кричит «много чрезмерного написания».
Митч говорит, чтобы удалить первичный ключ. Лично я бы оставил индекс на столе. Так как он кластеризован, это поможет ускорить время записи, поскольку БД всегда будет записывать новые строки в конце таблицы на диске.
Удалите часть этой дубликата информации, и вы, вероятно, будете прекрасно писать строку при каждом посещении.