PARANDUS: Osaliselt põhjustab päringu klaster columnstore register SQL Server 2014

NB! Artikkel on tõlgitud Microsofti masintõlketarkvaraga ja seda saab parandada Kogukonnapõhise tõlkeraamistiku (CTF) tehnoloogiaga. Microsoft pakub masintõlgitud, kogukonna järeltöödeldud ja inimtõlgitud artikleid, et anda mitmekeelne juurdepääs kõigile meie teabebaasi artiklitele. Masintõlgitud ja järeltöödeldud artiklites võib olla sõnavara-, süntaksi- ja/või grammatikavigu. Microsoft ei vastuta mingite ebatäpsuste, tõrgete ega kahjude eest, mis on tulenenud sisu valest tõlkest või selle kasutamisest meie klientide poolt. Lisateavet CTF-i kohta leiate aadressilt http://support.microsoft.com/gp/machine-translation-corrections/et.

Artikli ingliskeelse versiooni kuvamiseks klõpsake siin: 3067257
Selles artiklis kirjeldatakse probleemi, mis ilmneb ajal päringu klaster columnstore register Microsoft SQL Server 2014. See artikkel pakub lahendus selle probleemiga.
Kokkuvõte
Päringu, mis skannib klaster columnstore register Microsoft SQL Server 2014 kasutamisel võib harvadel juhtudel saate osaline päringu tulemused.

See probleem ilmneb siis, kui järgmine toiming käivitatakse.
1. samm
Transact-SQL-i lause [INSERT või MASSILINE lisamise] lisab andmed tabelisse, mis on rühmitatud columnstore indeks. Selle toimingu käigus kehtivad järgmised tingimused:
  • Kui Transact-SQL-i lause jõuab rowgroup piirmäära, sulgub rowgroup R1, millel on segmendi S1.
  • Segmendi S1 osutab kohaliku sõnastik D1.
  • Sisestage uus rowgroup R2 rida jätkuvalt väide.
  • Rowgroup R1 sulgemisel kohaliku sõnastik D1 ka pole sulgeda. Kui sõnastik D1 on vaba ruumi, saate avatuks ja seda uut rowgroup R2 uuesti kasutada.
2. etapp
Kui Transact-SQL-i lause on lõppenud ebanormaalselt või tühistatud enne uue rowgroup R2 sulgub, kehtivad järgmised tingimused:
  • Columnstore metaandmete muutused tekivad subtransactions, peaksid väline tehingu sõltumatult.
  • Siinkohal rowgroup R1 püsib "pooleli" või NÄHTAMATU oleku ning segment S1 süsteemi tabelis viitab sõnastik D1.
  • Pole ühtegi rida loodud süsteemi tabelis sõnastik D1. Seda sellepärast, et Transact-SQL-i lause kunagi on võimalus olemasoleva rea sulgemiseks. Seetõttu olemasoleva rea püsib.
3. samm
Tavaline olukorras korteeži mover background tööülesande käivitub pärast Transact-SQL-i lause lõpeb background tööülesande eemaldab nähtamatu rowgroup R1 ja segment S1. Kui uue Transact-SQL-i lause on nüüd käivitatud ja loob rowgroup R3, mis on uue segmendi S3, mis nõuab uue kohaliku sõnastik, ei saa sõnastik D1 sisemine ID uuesti kasutada. Seda sellepärast, et mälus olek on columnstore jälgib, sõnastik ID-d, mida kasutatakse. Seetõttu viitab segment S3 uus sõnastik D2.

Märkus. Selles juhises on üldine tingimus. Seetõttu ei ole andmerikke.
4. samm
Kui SQL serveri kaotab sõnastik D1-Mälu olek enne korteeži mover ülesande jõustub (ja teeb 3. etapis kirjeldatud), ilmneb käesolevas artiklis kirjeldatud probleemi.

Märkused
  • Sel juhul ilmneb mõni järgmistest põhjustest.
    • SQL serveri kogemusi mälu ülekoormus ja -mälu sisu sõnastik D1 on mälust eemaldada.
    • SQL serveri eksemplar uuesti.
    • Andmebaasi, mis sisaldab klaster columnstore register läheb ühenduseta ja siis tuleb jälle ühendusega.
  • Pärast üks neist sündmustest tekkida ja SQL Server laadib uuesti mälus struktuure, puuduvad andmed mis sõnastik D1 ja selle sisemine ID on olemas. Seda sellepärast, et sõnastik D1 oli süsteemi tabelid kui Transact-SQL-i lause lõpetati või conceled ei säilitata.
  • Korteeži mover background tööülesande käivitub selles punktis, ilmneda tõrkeid, sest 3. etapis kirjeldatud tingimused kehtivad.
  • Kui uus rowgroup R3 enne korteeži mover taustal ülesande algust (bullet eelmise üksuse) kohta, SQL Server määrab sama sisemine ID uus sõnastik D1 ja see viitab sõnastik D1 segmendi S3 rowgroup R3.
  • Korteeži mover background tööülesande käivitamisel pärast eelmise toimingu langeb selle toote S1 koos uue sõnaraamatu D1- ja nähtamatu rowgroup R1. Selle põhjuseks on korteeži mover leiab, et uus sõnastik D1 ja D1, et S1 viited on sama algse sõnastik.

    Märkus. Kui selline olukord tekib, ei saa taotleda rowgroup R3 sisu.
Lahendus
See probleem parandati esmakordselt järgmine kumulatiivseid värskendusi SQL Server:


Lahendus sellele probleemile on ka järgmised üldiselt levitatava väljalaskega (GDR) värskendused:

SQL serveri 2014 QFE turvavärskendus
See värskendus sisaldab kumulatiivne Update 8 ning oluline parandus vajalik MS15 058 turvavärskendused.

SQL serveri 2014 GDR turvavärskendus
See värskendus sisaldab oluline parandus ja turvavärskendused parandab MS15-058 kaudu.

SQL serveri 2014 Service Pack 1 GDR turvalisusega mitte seotud värskendus
See värskendus sisaldab ainult parandus oluline.

Kumulatiivseid värskendusi SQL serveri kohta

Iga uue SQL serveri koondvärskendus sisaldab kõiki Kiirparandusi ja kõiki turbeparandusi, mis sisaldusid eelmises koondvärskenduses. Vaadake SQL serveri kumulatiivseid värskendusi:
Lisateave

Tõrketeated

Praegu mõjutatud andmebaasis käivitamisel pärast selle paranduse rakendamist DBCC CHECKDB kuvatakse järgmine tõrketeade:
MSG 5289, tase 16, olek 1 rida 1
Klaster columnstore indeks "ÜKJ tabeli t ' on üks või mitu andmete väärtust, vastavad andmed väärtused sõnastikust. Andmed varukoopia põhjal taastada.

Praegu mõjutatud andmebaasis tabeleid otsib pärast selle paranduse rakendamist päringu käivitamisel kuvatakse järgmine tõrketeade:
MSG 5288, tase 16, olek 1 rida 1
Columnstore register on üks või mitu andmete väärtust, vastavad andmed väärtused sõnastikust. Käivitage DBCC CHECKDB rohkem infot.

Kui te saate neid tõrkeid, hoiate uncorrupted andmete massiline ei mõjuta veerud/rowgroups andmete eksportimine ja seejärel pealelaadimisel andmed pärast drop või rühmitatud columnstore indeksit luua. Lubage jälituslipp 10207 inimestega 5288 tõrge ja need on vana vahele rikutud rowgroups.

Märkus Tõrketeated 5288 ja 5289 luuakse see rowgroup R3, mis on segmendi S3. Jälituslipp 10207 kasutatakse ekstrakti ei mõjuta puuduvad sõnastik D1 rowgroup R3 segmente.

Päringu mõjutatud andmebaasid

Teha kindlaks, kas andmebaasi, mis sisaldab columnstore on juba probleemist mõjutatud, päringut:
select         object_name(i.object_id) as table_name,        i.name as index_name,        p.partition_number,        count(distinct s.segment_id) as damaged_rowgroups from        sys.indexes i        join sys.partitions p on p.object_id = i.object_id and p.index_id = i.index_id        join sys.column_store_row_groups g on g.object_id = i.object_id and g.index_id = i.index_id and g.partition_number = p.partition_number        join sys.column_store_segments s on s.partition_id = p.partition_id and s.segment_id = g.row_group_id where         i.type in (5, 6)        and s.secondary_dictionary_id <> -1         and g.state_description = 'COMPRESSED'        and s.secondary_dictionary_id not in        (               select dictionary_id from sys.column_store_dictionaries d               where d.hobt_id = p.hobt_id and d.column_id = s.column_id        ) group by         object_name(i.object_id),        i.name,        p.partition_number 

Märkused
  • Peate iga andmebaasi, mis sisaldab columnstore serveris, kus töötab SQL Server selle päringu käivitamiseks. Tühi tulemite hulk näitab andmebaasi ei mõjuta.
  • Selle päringu täitmiseks aja jooksul kui ei kasutata, looge uus rowgroups või muuta olemasolevaid rowgroups. Näiteks järgmisi ülesandeid saab muuta rowgroups riik: register järk, register korraldama, massiline lisamine, korteeži mover delta talletab tihendamine.

    Enne päringu käivitamist saate keelata korteeži mover taustatoiming jälituslipp 634 abil. Selle käsu abil saate keelata background tööülesande: DBCC TRACEON (634, -1). Kui päring on lõppenud, tööd, pidage meeles, et lubage background tööülesande käsuga: DBCC TRACEOFF (634, -1).

    Samuti veenduge, et seal ei ole MASSILINE INSERT/BCP/SELECT-INTEGREERIDA käske andmete lisamine tabeleid, mis kasutavad columnstore register päringu töötamise ajal.

    Soovitatav on nende juhiste abil saate vältida päringu naasmist vale-positiivsed.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises Kehtib järgmiste toodete kohta loetletud Microsofti toodetel.

Hoiatus. See artikkel on masintõlgitud.

Atribuudid

Artikli ID: 3067257 – viimati läbi vaadatud: 07/22/2015 17:40:00 – redaktsioon: 3.0

Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3067257 KbMtet
Tagasiside