Ich würde erst mal die Datenbankstruktur unter die Lupe nehmen.
Nur wenn die Datenbank sauber aufgebaut ist, kann die Performance stimmen.
- Haben alle Tabellen einem Primärschlüssel ?
- Haben alle Tabellen einen gruppierten index (Clustered Index) ?
- Sind alle Fremdschlüsselfelder indiziert ?
Zu den beiden ersten Punkten gibt es 2 nützliche Views:
SQL-Code:
CREATE VIEW dbo.vwNoPrimaryKeys
AS
SELECT name
FROM sysobjects
WHERE id NOT IN
(SELECT b.id
FROM sysconstraints b, sysobjects c
WHERE c.type = 'K' AND c.id = b.constid) AND type = 'U'
SQL-Code:
CREATE VIEW dbo.vwNoClusteredIndex
AS
SELECT name
FROM dbo.sysobjects so
WHERE (NOT EXISTS
(SELECT si.id
FROM sysindexes si
WHERE indid = 1 AND si.id = so.id)) AND (type = 'U')
ORDER BY name