« first day (512 days earlier)      last day (177 days later) » 
00:00 - 20:0020:00 - 00:00

8:00 PM
@Lamak lol
 
I added this to my answer:
> As you can see from the output of the fn_dblog command in the test above, the entire operation is fully logged. This goes for simple recovery, as well as full recovery. The terminology "fully logged" maybe misinterpreted as the data modification is not logged. This is not what happens - the modification is logged, and can be fully rolled back.
> The log is simply only recording the pages that were touched, and since none of the table's data-pages were logged by the DDL operation, both the DROP COLUMN, and any rollback that might occur will happen extremely quickly, regardless of the size of the table.
clearer?
 
I think so
 
Ah I get it. The poor wording in the docs combined with the metadata only part had me confused
That's a great answer
 
@George.Palacios cheers
 
8:08 PM
@MaxVernon minimally logged operations can also be rolled back. Maybe you mean rolled forward, but it gets really easy to say something wrong there
 
yah, perhaps my use of the word "fully" is misleading. Sounds too close to the "full recovery" definition of the word, perhaps. I should change it to say "the entire operation is logged."
by "rolled back" - I meant if you did that inside a transaction and did a ROLLBACK at the end.
 
I was judging it as non-minimal logging, IE the data pages modifications are captured, due to that docs page being ambiguous and me taking it literally.
It's not misleading to me. But I could totally see how it could be to other people
 
technical terminology like that can sure be confusing. I wouldn't want to be new to SQL Server, and try to understand it.
 
and the data page modifications would obviously suggest it's not a metadata only operation
I suppose really my whole issue stems from not taking Microsofts documentation with a pinch of salt
And to think. People speak so highly of the docs around here!
 
Internals are really difficult. Some MVPs (many?) don't understand what happens under the hood. And I only understand like 1%, maybe.
 
8:14 PM
Steep learning curve I guess
 
@George.Palacios not in this room
 
It's nice to know the tools you can use to "peek under the hood", which is why I put the work into the MCVE with fn_dblog in there.
 
@JoeObbish is there a font I can use for sarcasm?
that would be a great idea
@MaxVernon Yeah that was really helpful seeing the log records themselves
 
@George.Palacios no
 
@George.Palacios I thought this was used for sarcasm: "PeOPle SpEak sO hIgHlY oF ThE dOcS HeRe"
 
8:17 PM
@JoeObbish is this a trick, is this really the sarcasm font?
 
@Lamak that's cancerous
 
I find a simple /sarcasm works well
 
/s is enough
 
If I could edit that in I would
 
@Lamak maybe in Chilé
 
8:18 PM
font-family: Verdana,Arial,sans-serif
 
@MaxVernon in Chile we don't need tags, we can detect sarcasm right away
 
by the way, that MVP comment wasn't aimed at you.
specifically.
:-)
 
The MVP comment could apply to literally anyone.
 
@MaxVernon oh nice…though I don't understand what happens under the hood
@MaxVernon and maybe it won't be aimed to me after July 1st anyway
 
8:32 PM
@Lamak hey, that's Monday. Wow is this year flying by. I'm imagine you'll be fine!
 
@MaxVernon we'll see
 
 
1 hour later…
10:04 PM
@ErikDarling I believe her. I've seen a working repro now, but you need high concurrency to see the difference. Erland found a roughly 20% throughput improvement using 100 threads.
@MaxVernon I think it would be more accurate to say the column is removed from the metadata, the schema change invalidates existing plans, new plans can only reference columns that continue to exist, so naturally the storage engine does not return them (it's never asked to). Something like that. You could also use DBCC PAGE perhaps. That would show the column data continues to exist on the page. Talking about logging seems rather indirect.
 
@PaulWhite singleton inserts?
 
@ErikDarling yes
 
cool
 
@MaxVernon Oh I see why you talk about logging now, it's in the question! LOL
They're really two separate questions, but too late now I guess.
@JoshDarnell Yes, exactly. The lasting bulk value of Q & A is in the answers. There is some transient value to the OP as well, but that's just one person.
 
10:37 PM
OOH
it looks like there's a writelog tradeoff
100 threads x 100 iterations, they both take around 37 seconds
i get less PAGELATCH_EX, but wow that WRITELOG
DROP TABLE dbo.Votes_Insert;
CREATE TABLE dbo.Votes_Insert
(
    Id INT IDENTITY(1, 1) NOT NULL,
    PostId INT NOT NULL,
    UserId INT NULL,
    BountyAmount INT NULL,
    VoteTypeId INT NOT NULL,
    CreationDate DATETIME NOT NULL,
    CONSTRAINT PK_Votes_Insert_Id
        PRIMARY KEY CLUSTERED (Id ASC)
	WITH (OPTIMIZE_FOR_SEQUENTIAL_KEY  = ON)
);
GO


CREATE PROCEDURE dbo.VoteInserter
AS
SET NOCOUNT, XACT_ABORT ON
BEGIN
  INSERT dbo.Votes_Insert ( PostId, UserId, BountyAmount, VoteTypeId, CreationDate )
i wonder if it matters that i truncate the table in between runs
hm
 
sounds like local factors may be in play
 
are you saying i have a vm problem
 
that would qualify
 
OKAY
so sqlquerystress seems to be part of the problem
open source strikes again
however using ostress seems to not show a difference either
they're both around 5 seconds
for 100tx100r
time to pump up the volume
 
10:53 PM
try just the minimum amount of data per row
 
how is that not?
 
you have a bunch of columns
try using fewer of them
like the minimum number
 
like get rid of bounty amount?
 
hello
 
DON'T INTERRUPT
 
10:55 PM
@ErikDarling like get rid of every column that's not needed
 
@PaulWhite called it!
 
seems shady
 
@JoeObbish what?
 
that people were testing on small servers
anyway carry on, wouldn't want to interrupt
with my... bus story
 
you think every server is small
 
10:57 PM
@ErikDarling when you leave the gym do you think that most people that pass you by are big or small?
 
@JoeObbish i don't look at people, are you bonkers
 
yes you do
I didn't say make eye contact or anything
 
the thing is i don't think i'm big
so this isn't a good example
 
a common problem
> man who lifts in top 1% doesn't consider himself big
 
@JoeObbish link
 
10:59 PM
okay this is better
but
the heck is up with those heckin null inserts
ahem
 
@PaulWhite upon further review, it appears that I just thought it at the time and didn't actually say it here
but really it's the same thing
 
mm hm
@ErikDarling null inserts?
 
@ErikDarling what does that mean?
 
if you think it hard enough it appears in here
 
now I know how you people feel when I post an image here
 
11:02 PM
@ErikDarling I certainly hope not
 
@PaulWhite you mentioned getting rid of unnecessary columns, which i took as ones that allow nulls
@JoeObbish idk yet
 
though there is quite a lot of empty space on each transcript page, so perhaps you're right
that would be Lamak's thoughts I guess
 
@ErikDarling Paul meant get to the 10 byte min row size
@ErikDarling is the top one with the new index option? how does throughput change between tests?
 
I meant to minimize the amount of log generated
 
11:04 PM
i can't help it, you generate a lot of log
 
So you're really testing contended insert speed rather than anything else
Tangentially: Isn't 9 bytes the minimum?
 
DROP TABLE dbo.Votes_Insert;
CREATE TABLE dbo.Votes_Insert
(
    Id INT IDENTITY(1, 1) NOT NULL,
    CONSTRAINT PK_Votes_Insert_Id
        PRIMARY KEY CLUSTERED (Id ASC)
	WITH (OPTIMIZE_FOR_SEQUENTIAL_KEY  = ON)
);
GO
everything is just so complicated these days
 
UNREALISTIC
 
I'd vote for it
vote for it
 
@ErikDarling start unrealistic as a sanity check
 
11:06 PM
so
ahem
clinks glass
 
if you want to see a difference in behavior, go to extremes first
 
Erland's test had two columns
 
as a bonus you can top Erland
 
oh we need to shush
 
150 threads at 2000 iterations takes 13.596s turned on, and 14.568 turned off
 
11:06 PM
about what/why
 
46 secs ago, by Erik Darling
clinks glass
 
rudie poos
 
@ErikDarling so that's a win then I guess
 
the reduction in pagelatch_ex is significant
 
if that's what your workload does
 
11:08 PM
that's what stack overflow does when jon skeet posts an answer
 
@PaulWhite is that what that means?
 
stack overflow just repeats itself in a loop
@JoeObbish yes, it is a prelude to an important announcement, to which everyone should pay close attention
 
freezing the room sounds more effective
 
should i switch delayed durability on to reduce my writelog waits
 
typically the glass is clinked three times
 
11:09 PM
three times is inferred
 
@JoeObbish room owners are the worst offenders
 
what kind of aspiring frenchman would clink a glass ONCE
 
@PaulWhite true
 
@ErikDarling sounds risky
 
i'd be de-bereted instantly
 
11:10 PM
so what's with this feature anyway
isn't this what in memory OLTP is for?
 
Joe catching up with the transcript
 
you should be on twitter
 
perhaps he has delayed durability enabled
 
@PaulWhite I have recovery target set to 32000
 
good luck with your recovery
 
11:12 PM
8 hours ago, by Erik Darling
on the one hand, i like that it seems to be ground ceded by hekaton
that?
 
and twitter, yes
and our thoughts at the time
 
@PaulWhite if I want nonsense from armchair experts I'll read comments
 
which clearly form part of the permanent record
 
@JoeObbish not if paul sees them first
 
did Joe just dis my tweet?
 
11:14 PM
he does that all the time on discord
 
sounds discordant
contrary, even
 
these tests with delayed durability on are wacky
 
@PaulWhite haven't seen it
 
a likely story
that would be like not reading the transcript
@ErikDarling are they
well well well
 
fine I'll read the damn tweet
 
11:16 PM
it's not that great tbh
 
the quoted tweet is the true star of the show
 
@ErikDarling tbf delayed durability won't help single row auto commits
 
I read the tweet
you're going to hurt the feelings of the hekaton product manager
assuming that position hasn't been replaced by a robot yet
 
sacked a long time ago
left under a cloud
as it were
Azure was its name
 
I met him at summit about two years ago and think I was rude by accident
 
11:18 PM
surely not
 
well you can be the judge
 
did he pull the cord early?
 
he said what he did and I remarked that I didn't know anything about hekaton
it was meant as an invitation to say something
but when he started talking I remembered that I didn't know anything because I didn't care
it was a tough spot to be in
 
perhaps you've judged the feature unfarley
 
@ErikDarling there's always money in talking about filtered indexes
 
11:22 PM
oh was it Kevin or Jovan?
 
alright, moving the vm to my nvme drive
 
twitter is the worst website
what the hell kind of option is that?
"Yes" or... nothing
@PaulWhite well we had a conversation, so...
 
Mar 29 '18 at 18:08, by Joe Obbish
it's a legacy demo
perhaps you're using a legacy browser
anyway
 
don't forget to clink the glass
 
wasn't there talk of some 🚌 news
 
11:26 PM
joe didn't clink the cord
was nvme a mistake?
 
Does nvme mean never mind the expense?
 
it was brent's expense at the time
so pretty much
 
Sweet
 
11:44 PM
@PaulWhite they're dirt cheap these days
 
Not if your current hardware doesn't support it
But yes
 
well
these tests both finish within 1 second of each other
writelog is a shit
but i see the improvement in pagelatch_ex
so uh
 
00:00 - 20:0020:00 - 00:00

« first day (512 days earlier)      last day (177 days later) »