I only changed the data type from text to varchar(max) in the table and
removed the FILLFACTOR 90. I then selected all the rows from the old table
and inserted into the new one.

CREATE TABLE [dbo].[Log_New](
[LogID] [bigint] IDENTITY(1,1) NOT NULL,
[DateTime] [datetime] NOT NULL,
[Type] [varchar](30) NOT NULL,
[Message] [varchar](max) NULL,
 CONSTRAINT [PK_Log_New] PRIMARY KEY CLUSTERED
(
[LogID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[Log_New] ADD CONSTRAINT [DF_Log_New_DateTime] DEFAULT
(getdate()) FOR [DateTime]
GO

Cheers

On Mon, 25 Mar 2019 at 12:49, Greg Low <g...@greglow.com> wrote:

> The number of rows is unrelated. Can you show the script you used? In
> particular, how you recreated the table. I presume you didn’t have the LOB
> options in that? If you just create the table with the new data types and
> don’t specify anything else, it defaults to in-row storage.
>
> Regards,
>
> Greg
>
> Dr Greg Low
> SQL Down Under Pty Ltd
> Mobile: +61419201410 Office: 1300775775
>
> ------------------------------
> *From:* ozdotnet-boun...@ozdotnet.com on behalf of Tom P <
> tompbi...@gmail.com>
> *Sent:* Monday, March 25, 2019 10:47 am
> *To:* ozDotNet
> *Subject:* Re: [OT] Sql Server writes causing contention
>
> Hi Greg
>
> I have done as you suggested below but it seems the new table also has
> LOB_DATA and not only in row data after moving all the data.
>
> There are 5mil records which I suspect is the issue. Any thoughts?
>
> Cheers
>
>
> On Thu, 7 Mar 2019 at 14:10, <g...@greglow.com> wrote:
>
>> It’s easy to see. Try executing this:
>>
>>
>>
>> USE tempdb;
>>
>> GO
>>
>>
>>
>> DROP TABLE IF EXISTS dbo.TomText;
>>
>> GO
>>
>> DROP TABLE IF EXISTS dbo.TomVarCharMax;
>>
>> GO
>>
>>
>>
>> CREATE TABLE dbo.TomText
>>
>> (
>>
>>     TomTextID bigint identity(1,1) NOT NULL,
>>
>>     [Message] text NOT NULL
>>
>> );
>>
>> GO
>>
>>
>>
>> CREATE TABLE dbo.TomVarCharMax
>>
>> (
>>
>>     TomVarCharMaxID bigint identity(1,1) NOT NULL,
>>
>>     [Message] varchar(max) NOT NULL
>>
>> );
>>
>> GO
>>
>>
>>
>> INSERT dbo.TomText ([Message])
>>
>> SELECT TOP(10000) [name]
>>
>> FROM sys.all_columns;
>>
>> GO
>>
>>
>>
>> INSERT dbo.TomVarCharMax ([Message])
>>
>> SELECT TOP(10000) [name]
>>
>> FROM sys.all_columns;
>>
>> GO
>>
>>
>>
>> SELECT OBJECT_NAME(object_id),
>>
>>        alloc_unit_type_desc,
>>
>>        page_count
>>
>> FROM sys.dm_db_index_physical_stats
>>
>>        (DB_ID(), NULL, NULL, NULL, 'DETAILED')
>>
>> WHERE OBJECT_NAME(object_id) IN (N'TomText', N'TomVarCharMax');
>>
>>
>>
>> It’ll return something like this:
>>
>>
>>
>>
>>
>> Note the difference.
>>
>>
>>
>> Also note that you can’t fix it by just changing the datatype. Rename the
>> table, create a new one, and move the data over.
>>
>>
>>
>> Another question: why 90 as a FILLFACTOR if you’re only writing to it in
>> order?
>>
>>
>>
>> Regards,
>>
>>
>>
>> Greg
>>
>>
>>
>> Dr Greg Low
>>
>>
>>
>> 1300SQLSQL (1300 775 775) office | +61 419201410 mobile│ +61 3 8676 4913
>> fax
>>
>> SQL Down Under | Web: www.sqldownunder.com
>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.sqldownunder.com%2F&data=02%7C01%7Csspahelp%40microsoft.com%7C1f0ea4d6b97e4d897f3708d666d1e890%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636809449091516274&sdata=SLHeEGAMmWUY5YIwcC4oAPYr%2F9RIZdi4MNASsdzwX2I%3D&reserved=0>
>>  |http://greglow.me
>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgreglow.me%2F&data=02%7C01%7Csspahelp%40microsoft.com%7C1f0ea4d6b97e4d897f3708d666d1e890%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636809449091526278&sdata=IU8tnAITCjBxWafi3A9XpO9lF3PIwZJ8ad3t36lnxvs%3D&reserved=0>
>>
>>
>>
>> *From:* ozdotnet-boun...@ozdotnet.com <ozdotnet-boun...@ozdotnet.com> *On
>> Behalf Of *Tom P
>> *Sent:* Thursday, 7 March 2019 1:20 PM
>> *To:* ozDotNet <ozdotnet@ozdotnet.com>
>> *Subject:* Re: [OT] Sql Server writes causing contention
>>
>>
>>
>> Very interesting about the storage of the text type. Do you have a
>> Microsoft link by any chance which says this?
>>
>>
>>
>> Create script:
>>
>>
>>
>> CREATE TABLE [dbo].[Log](
>>
>>                 [LogID] [bigint] IDENTITY(1,1) NOT NULL,
>>
>>                 [DateTime] [datetime] NOT NULL,
>>
>>                 [Type] [varchar](30) NOT NULL,
>>
>>                 [Message] [text] NULL,
>>
>>  CONSTRAINT [PK_Log] PRIMARY KEY CLUSTERED
>>
>> (
>>
>>                 [LogID] ASC
>>
>> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
>> OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON
>> [PRIMARY]
>>
>> ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
>>
>> GO
>>
>>
>>
>> ALTER TABLE [dbo].[Log] ADD CONSTRAINT [DF_Log_DateTime] DEFAULT
>> (getdate()) FOR [DateTime]
>>
>> GO
>>
>>
>>
>> Cheers
>>
>> Tom
>>
>>
>>
>> On Thu, 7 Mar 2019 at 11:58, <g...@greglow.com> wrote:
>>
>> Might get you to post the actual table schema though, so we can check it.
>> Just script the whole table, indexes, etc.
>>
>>
>>
>> First comment is that you shouldn’t be using text at all. Apart from the
>> fact that it was deprecated back in 2005, the data for that is (by default)
>> stored out of row, not with the rest of the data. That’s never quick.
>>
>>
>>
>> Regards,
>>
>>
>>
>> Greg
>>
>>
>>
>> Dr Greg Low
>>
>>
>>
>> 1300SQLSQL (1300 775 775) office | +61 419201410 mobile│ +61 3 8676 4913
>> fax
>>
>> SQL Down Under | Web: www.sqldownunder.com
>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.sqldownunder.com%2F&data=02%7C01%7Csspahelp%40microsoft.com%7C1f0ea4d6b97e4d897f3708d666d1e890%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636809449091516274&sdata=SLHeEGAMmWUY5YIwcC4oAPYr%2F9RIZdi4MNASsdzwX2I%3D&reserved=0>
>>  |http://greglow.me
>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgreglow.me%2F&data=02%7C01%7Csspahelp%40microsoft.com%7C1f0ea4d6b97e4d897f3708d666d1e890%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636809449091526278&sdata=IU8tnAITCjBxWafi3A9XpO9lF3PIwZJ8ad3t36lnxvs%3D&reserved=0>
>>
>>
>>
>> *From:* ozdotnet-boun...@ozdotnet.com <ozdotnet-boun...@ozdotnet.com> *On
>> Behalf Of *Tom P
>> *Sent:* Thursday, 7 March 2019 11:53 AM
>> *To:* ozDotNet <ozdotnet@ozdotnet.com>
>> *Subject:* Re: [OT] Sql Server writes causing contention
>>
>>
>>
>> Logid bigint
>>
>> Datetime
>>
>> Type varchar
>>
>> Message text
>>
>>
>>
>> I don’t have the stats yet but some of the apps are services that run
>> batches of things and have busy periods during the day where they could
>> write maybe 10,000 thousand rows. Possibly several times per second maybe.
>>
>>
>>
>>
>>
>> On Thu, 7 Mar 2019 at 11:44, <g...@greglow.com> wrote:
>>
>> Hi Tom,
>>
>>
>>
>> Can you post the table schema?
>>
>>
>>
>> What rate are the writes coming in at?
>>
>>
>>
>> Regards,
>>
>>
>>
>> Greg
>>
>>
>>
>> Dr Greg Low
>>
>>
>>
>> 1300SQLSQL (1300 775 775) office | +61 419201410 mobile│ +61 3 8676 4913
>> fax
>>
>> SQL Down Under | Web: www.sqldownunder.com
>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.sqldownunder.com%2F&data=02%7C01%7Csspahelp%40microsoft.com%7C1f0ea4d6b97e4d897f3708d666d1e890%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636809449091516274&sdata=SLHeEGAMmWUY5YIwcC4oAPYr%2F9RIZdi4MNASsdzwX2I%3D&reserved=0>
>>  |http://greglow.me
>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgreglow.me%2F&data=02%7C01%7Csspahelp%40microsoft.com%7C1f0ea4d6b97e4d897f3708d666d1e890%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636809449091526278&sdata=IU8tnAITCjBxWafi3A9XpO9lF3PIwZJ8ad3t36lnxvs%3D&reserved=0>
>>
>>
>>
>> *From:* ozdotnet-boun...@ozdotnet.com <ozdotnet-boun...@ozdotnet.com> *On
>> Behalf Of *Tom P
>> *Sent:* Thursday, 7 March 2019 11:40 AM
>> *To:* ozDotNet <ozdotnet@ozdotnet.com>
>> *Subject:* [OT] Sql Server writes causing contention
>>
>>
>>
>> Hi folks
>>
>>
>>
>> *Scenario:*
>>
>> Multiple apps writing to a Log table in the same Sql Server database.
>> Some apps hitting the table A LOT. No app reads from this table. No updates
>> also. Just plain writes adding new rows.
>>
>>
>>
>> *Problem:*
>>
>> Contention causing timeout errors.
>>
>>
>>
>> Can anybody explain why this could be case?
>>
>>
>>
>> Cheers
>>
>> Tom
>>
>> --
>>
>> Thanks
>>
>> Tom
>>
>> --
>>
>> Thanks
>>
>> Tom
>>
>> --
> Thanks
> Tom
>

Reply via email to