- Updated Microsoft.Data.SqlClient to version 6.1.1
- Added indexes to optimize query performance #38
- Bucket-scoped checkpoint scans: (BucketId, CheckpointNumber)
- Per-stream operations and delete: (BucketId, StreamId)
- Snapshot join/aggregation: (StreamId, StreamRevision)
BugFix
- Fixed GetStreamsToSnapshot pagination #54
Breaking Changes
The following indexes were added to the default schema (upon database initialization), add it manually to an existing database:
SqlServer
CREATE INDEX [IX_Commits_Bucket_Checkpoint] ON [dbo].[Commits] ([BucketId], [CheckpointNumber]);
CREATE INDEX [IX_Commits_Bucket_Stream] ON [dbo].[Commits] ([BucketId], [StreamId]);
CREATE INDEX [IX_Commits_Bucket_Stamp] ON dbo.Commits ([BucketId], [CommitStamp]);
CREATE INDEX [IX_Snapshots_Stream_Revision] ON [dbo].[Snapshots] ([StreamId], [StreamRevision]);MySql
CREATE INDEX IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);Oracle
CREATE INDEX IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);PostgreSql
CREATE INDEX IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);SQLite
CREATE INDEX IF NOT EXISTS IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IF NOT EXISTS IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IF NOT EXISTS IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IF NOT EXISTS IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);