MSSQL 2008R2: Phantom Index UpdatesSQL Server 2000 tablesDoes index fill factor become meaningless on large tables?Mysterious timeouts in MSSQL 2000null values stored in databaseLarge script, many inserts and deletes: There is insufficient system memory to run this queryRow size, indexes and varchar(max)sql server shard lock issueSQL Server normalizing for performanceMS SQL after upgrade from 2014 to 2016 JOIN takes longerSQL change column datatype in production

Taxi Services at Didcot

Soft question: Examples where lack of mathematical rigour cause security breaches?

Using a found spellbook as a Sorcerer-Wizard multiclass

How can drunken, homicidal elves successfully conduct a wild hunt?

How to project 3d image in the planes xy, xz, yz?

What are the peak hours for public transportation in Paris?

Is open-sourcing the code of a webapp not recommended?

What makes an item an artifact?

Are there downsides to using std::string as a buffer?

Do simulator games use a realistic trajectory to get into orbit?

How to retract an idea already pitched to an employer?

Should I compare a std::string to "string" or "string"s?

Confusion about off peak timings of London trains

Payment instructions allegedly from HomeAway look fishy to me

Can an Aarakocra use a shield while flying?

What's the name of this light airplane?

Trapping Rain Water

Should an arbiter claim draw at a K+R vs K+R endgame?

What should the arbiter and what should have I done in this case?

Was the Tamarian language in "Darmok" inspired by Jack Vance's "The Asutra"?

Words that signal future content

Chemmacros scheme translation

Why doesn't Adrian Toomes give up Spider-Man's identity?

What risks are there when you clear your cookies instead of logging off?



MSSQL 2008R2: Phantom Index Updates


SQL Server 2000 tablesDoes index fill factor become meaningless on large tables?Mysterious timeouts in MSSQL 2000null values stored in databaseLarge script, many inserts and deletes: There is insufficient system memory to run this queryRow size, indexes and varchar(max)sql server shard lock issueSQL Server normalizing for performanceMS SQL after upgrade from 2014 to 2016 JOIN takes longerSQL change column datatype in production






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








1















I was trying to run the following query:



 Update A 
SET A.Col1 = B.Col1,
...
A.ColN = B.ColN
FROM A INNER JOIN B
ON (A.Col1 = B.Col1)
WHERE B.Col2 = X AND (A.Col1 <> B.Col1 OR ... OR A.ColN <> B.ColN)


The query affects only 4700 rows (and 7 columns) in its update. But it takes over 10 minutes and blocks multiple other users from many other tables.



I checked the query plan and no less than 12 indexes are updated as a result of this query. I know that the legacy databases are overindexed. That isn't my problem right now.



My question is this: 7 of the indexes being updated (and the 3 most costly ones) are not from table A or table B. I've checked all triggers on the table and none of them lead to any effect on the two other tables being updated.



How might this be happening? What mechanism is there that could cause these phantom updates?










share|improve this question
























  • Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table.

    – Aushin
    Feb 18 '11 at 20:36











  • please post this as an answer using the Answer Your Question button below.

    – Ben Pilbrow
    Feb 18 '11 at 20:51

















1















I was trying to run the following query:



 Update A 
SET A.Col1 = B.Col1,
...
A.ColN = B.ColN
FROM A INNER JOIN B
ON (A.Col1 = B.Col1)
WHERE B.Col2 = X AND (A.Col1 <> B.Col1 OR ... OR A.ColN <> B.ColN)


The query affects only 4700 rows (and 7 columns) in its update. But it takes over 10 minutes and blocks multiple other users from many other tables.



I checked the query plan and no less than 12 indexes are updated as a result of this query. I know that the legacy databases are overindexed. That isn't my problem right now.



My question is this: 7 of the indexes being updated (and the 3 most costly ones) are not from table A or table B. I've checked all triggers on the table and none of them lead to any effect on the two other tables being updated.



How might this be happening? What mechanism is there that could cause these phantom updates?










share|improve this question
























  • Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table.

    – Aushin
    Feb 18 '11 at 20:36











  • please post this as an answer using the Answer Your Question button below.

    – Ben Pilbrow
    Feb 18 '11 at 20:51













1












1








1








I was trying to run the following query:



 Update A 
SET A.Col1 = B.Col1,
...
A.ColN = B.ColN
FROM A INNER JOIN B
ON (A.Col1 = B.Col1)
WHERE B.Col2 = X AND (A.Col1 <> B.Col1 OR ... OR A.ColN <> B.ColN)


The query affects only 4700 rows (and 7 columns) in its update. But it takes over 10 minutes and blocks multiple other users from many other tables.



I checked the query plan and no less than 12 indexes are updated as a result of this query. I know that the legacy databases are overindexed. That isn't my problem right now.



My question is this: 7 of the indexes being updated (and the 3 most costly ones) are not from table A or table B. I've checked all triggers on the table and none of them lead to any effect on the two other tables being updated.



How might this be happening? What mechanism is there that could cause these phantom updates?










share|improve this question
















I was trying to run the following query:



 Update A 
SET A.Col1 = B.Col1,
...
A.ColN = B.ColN
FROM A INNER JOIN B
ON (A.Col1 = B.Col1)
WHERE B.Col2 = X AND (A.Col1 <> B.Col1 OR ... OR A.ColN <> B.ColN)


The query affects only 4700 rows (and 7 columns) in its update. But it takes over 10 minutes and blocks multiple other users from many other tables.



I checked the query plan and no less than 12 indexes are updated as a result of this query. I know that the legacy databases are overindexed. That isn't my problem right now.



My question is this: 7 of the indexes being updated (and the 3 most costly ones) are not from table A or table B. I've checked all triggers on the table and none of them lead to any effect on the two other tables being updated.



How might this be happening? What mechanism is there that could cause these phantom updates?







sql-server update






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 21 at 13:46









window.document

1436




1436










asked Feb 18 '11 at 20:02









AushinAushin

1456




1456












  • Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table.

    – Aushin
    Feb 18 '11 at 20:36











  • please post this as an answer using the Answer Your Question button below.

    – Ben Pilbrow
    Feb 18 '11 at 20:51

















  • Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table.

    – Aushin
    Feb 18 '11 at 20:36











  • please post this as an answer using the Answer Your Question button below.

    – Ben Pilbrow
    Feb 18 '11 at 20:51
















Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table.

– Aushin
Feb 18 '11 at 20:36





Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table.

– Aushin
Feb 18 '11 at 20:36













please post this as an answer using the Answer Your Question button below.

– Ben Pilbrow
Feb 18 '11 at 20:51





please post this as an answer using the Answer Your Question button below.

– Ben Pilbrow
Feb 18 '11 at 20:51










2 Answers
2






active

oldest

votes


















1














Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table. Since the foreign key was being updated, the rows referenced by the foreign key had to be updated, causing the index updates on the affected tables.






share|improve this answer
































    0














    Do you have indexed views that also reference those tables? An update to those tables would also cause index updates to the indexed views.






    share|improve this answer























    • This could have also been the potential answer (I accidentally happened upon it myself a moment ago), so thank you. I hadn't thought of this either.

      – Aushin
      Feb 18 '11 at 20:55











    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "2"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f237441%2fmssql-2008r2-phantom-index-updates%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table. Since the foreign key was being updated, the rows referenced by the foreign key had to be updated, causing the index updates on the affected tables.






    share|improve this answer





























      1














      Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table. Since the foreign key was being updated, the rows referenced by the foreign key had to be updated, causing the index updates on the affected tables.






      share|improve this answer



























        1












        1








        1







        Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table. Since the foreign key was being updated, the rows referenced by the foreign key had to be updated, causing the index updates on the affected tables.






        share|improve this answer















        Nevermind, I discovered the issue. There was an update to a column that was a foreign key to another table. Since the foreign key was being updated, the rows referenced by the foreign key had to be updated, causing the index updates on the affected tables.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Feb 18 '11 at 21:04

























        answered Feb 18 '11 at 20:54









        AushinAushin

        1456




        1456























            0














            Do you have indexed views that also reference those tables? An update to those tables would also cause index updates to the indexed views.






            share|improve this answer























            • This could have also been the potential answer (I accidentally happened upon it myself a moment ago), so thank you. I hadn't thought of this either.

              – Aushin
              Feb 18 '11 at 20:55















            0














            Do you have indexed views that also reference those tables? An update to those tables would also cause index updates to the indexed views.






            share|improve this answer























            • This could have also been the potential answer (I accidentally happened upon it myself a moment ago), so thank you. I hadn't thought of this either.

              – Aushin
              Feb 18 '11 at 20:55













            0












            0








            0







            Do you have indexed views that also reference those tables? An update to those tables would also cause index updates to the indexed views.






            share|improve this answer













            Do you have indexed views that also reference those tables? An update to those tables would also cause index updates to the indexed views.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Feb 18 '11 at 20:29









            squillmansquillman

            35.3k980134




            35.3k980134












            • This could have also been the potential answer (I accidentally happened upon it myself a moment ago), so thank you. I hadn't thought of this either.

              – Aushin
              Feb 18 '11 at 20:55

















            • This could have also been the potential answer (I accidentally happened upon it myself a moment ago), so thank you. I hadn't thought of this either.

              – Aushin
              Feb 18 '11 at 20:55
















            This could have also been the potential answer (I accidentally happened upon it myself a moment ago), so thank you. I hadn't thought of this either.

            – Aushin
            Feb 18 '11 at 20:55





            This could have also been the potential answer (I accidentally happened upon it myself a moment ago), so thank you. I hadn't thought of this either.

            – Aushin
            Feb 18 '11 at 20:55

















            draft saved

            draft discarded
















































            Thanks for contributing an answer to Server Fault!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f237441%2fmssql-2008r2-phantom-index-updates%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

            Bruxelas-Capital Índice Historia | Composición | Situación lingüística | Clima | Cidades irmandadas | Notas | Véxase tamén | Menú de navegacióneO uso das linguas en Bruxelas e a situación do neerlandés"Rexión de Bruxelas Capital"o orixinalSitio da rexiónPáxina de Bruselas no sitio da Oficina de Promoción Turística de Valonia e BruxelasMapa Interactivo da Rexión de Bruxelas-CapitaleeWorldCat332144929079854441105155190212ID28008674080552-90000 0001 0666 3698n94104302ID540940339365017018237

            What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company