Just an idea difficult to write in a comment.
Create multiple log tables, e.g. 3, Log1, Log2, Log3
CREATE TABLE Log1 ( Id int NOT NULL CHECK (Id BETWEEN 0 AND 9) ,Message varchar(10) NOT NULL ,CONSTRAINT [PK_Log1] PRIMARY KEY CLUSTERED ([Id] ASC) ON [PRIMARY] ) CREATE TABLE Log2 ( Id int NOT NULL CHECK (Id BETWEEN 10 AND 19) ,Message varchar(10) NOT NULL ,CONSTRAINT [PK_Log2] PRIMARY KEY CLUSTERED ([Id] ASC) ON [PRIMARY] ) CREATE TABLE Log3 ( Id int NOT NULL CHECK (Id BETWEEN 20 AND 29) ,Message varchar(10) NOT NULL ,CONSTRAINT [PK_Log3] PRIMARY KEY CLUSTERED ([Id] ASC) ON [PRIMARY] )
Then create a partitioned view
CREATE VIEW LogView AS ( SELECT * FROM Log1 UNION ALL SELECT * FROM Log2 UNION ALL SELECT * FROM Log3 )
If you are using SQL2012, you can use the sequence
CREATE SEQUENCE LogSequence AS int START WITH 0 INCREMENT BY 1 MINVALUE 0 MAXVALUE 29 CYCLE ;
And then start pasting the values
INSERT INTO LogView (Id, Message) SELECT NEXT VALUE FOR LogSequence ,'SomeMessage'
Now you just need to trim the logtables on some chart
If you do not have sql2012, you need to create the sequence in a different way
source share