У меня есть таблица в SQL Server 2005, которая содержит некоторые данные журнала изменений для ряда проектов.Они хранятся в одной таблице, так как существуют сотни проектов, и к таблице журнала проектов можно запрашивать такие вещи, как активность в день или на человека.
Например
projectlogidentity int identity<br>
projectname nvarchar(100)<br>
projectchanged datetime<br>
projectchangedby nvarchar(100)<br>
projectserial int
Естьиндексы для имени проекта и серии проектов
Я хочу создать серию проектов для каждого проекта по мере добавления строк
например:
0 |кофейня |7 января 2011 08:13 |Дерек |0
1 |дискотека |7 января 2011 08:18 |эмма |0
2 |кофейня |7 января 2011 08:19 |питер |1
3 |дискотека |7 января 2011 09:11 |алан |1
4 |кофейня |7 января 2011 г. 09:42 |Тесс |2
Таким образом, при извлечении строк для одного проекта по имени проекта существует постоянный последовательный серийный номер для каждой строки, определенной для этого имени проекта.
После вставки строки, которую я в настоящее время выполняю:
update projectlog set projectserial=1+
(select isnull(max(projectserial),0) from projectlog
where projectname='coffee shop') where (projectlogidentity=4);
но я беспокоюсь о производительности, когда эта таблица будет содержать сотни тысяч строк и сотни проектов.Есть ли лучший способ?
спасибо
Дерек