Microsoft distribuie remedieri Microsoft SQL Server 2012 ca un fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu SQL Server 2012 fix release.
Simptome
Atunci când efectuați activitatea de descoperire sau activitatea de curățare în SQL Server 2012 data Quality Services (DQS), baza de date DQS_PROJECTS poate crește foarte rapid. Tabelele tranzitorii X_ din baza de date DQS_PROJECT mai ales rapid. În special, este posibil să întâmpinați următoarele probleme pentru activitatea de descoperire:
-
Dimensiunea fișierului de date DQS_PROJECTS (MDF) poate fi de aproximativ 30 de ori mai mare decât dimensiunea datelor sursă. Aceste date tranzitorii vor fi șterse atunci când se publică baza de cunoștințe. Baza de cunoștințe publicată va fi mutată în fișierul de date DQS_MAIN (MDF) și poate fi de aproximativ 5 ori dimensiunea datelor sursă.
-
Dimensiunea jurnalului de tranzacții DQS_PROJECTS (LDF) crește frecvent.
În special, este posibil să întâmpinați următoarele probleme pentru activitatea de curățare:
-
Dimensiunea fișierului de date DQS_PROJECTS (MDF) poate fi de aproximativ 40 ori mai mare decât dimensiunea datelor sursă.
-
Dimensiunea jurnalului de tranzacții DQS_PROJECTS (LDF) poate fi de aproximativ 60 la 100 de ori dimensiunea datelor sursă.
Cauză
Această problemă apare pentru unul sau mai multe dintre motivele următoare:
-
Rândurile goale și valorile de coloană consumă spațiu în tabele tranzitorii. Majoritatea spațiilor sunt consumate de coloanele BigInt pentru rânduri și coloane goale din tabelele care au numele X_INDEX_DATA_SOURCE_TABLE în fiecare schemă.
-
Datele tranzitorii stocate în X_INDEX_DATA_SOURCE_TABLE tabele interne nu sunt lansate imediat după ce proiectul este terminat sau baza de cunoștințe este publicată.
Rezolvare
Informații despre actualizarea cumulativă
SQL Server 2012
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 2 pentru SQL Server 2012 Service Pack RTM. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2703275 Pachetul de actualizare cumulativă 2 pentru SQL Server 2012Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2012 fix release. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2692828 SQL Server 2012 construiește care au fost lansate după ce s-a lansat SQL Server 2012 Sunt create remedieri rapide Microsoft SQL Server 2012 pentru anumite pachete de servicii SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2012 Service Pack RTM la o instalare de SQL Server 2012 Service Pack RTM. În mod implicit, orice remediere rapidă furnizată într-un pachet de servicii SQL Server este inclusă în următorul pachet de servicii SQL Server.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Soluție de evitare
Pentru a rezolva această problemă, ștergeți proiectele de date inutile și bazele de cunoștințe din DQS, pentru a ajuta la minimizarea amprentei tabelelor interne care sunt utilizate de proiecte. După ce aplicați această remediere, dimensiunea bazei de date DQS_PROJECT nu va scădea automat. Pentru mai multe informații despre cum să reduceți dimensiunea unei baze de date, accesați următorul site Web Microsoft:
Cum se micșorează o bază de dateNotă Instalarea acestei remedieri rapide singure nu corectează problemele de creștere a bazei de date care au avut loc în trecut și sunt utile doar pentru noile proiecte și activități create în viitor, precum și proiecte și activități care s-au finalizat în viitor. Pentru a reduce manual dimensiunea bazelor de date DQS, examinați bazele de cunoștințe care nu mai sunt utilizate sau proiectele de calitate a datelor care sunt deja terminate. Aveți posibilitatea să utilizați clientul de calitate a datelor, apoi să faceți clic pe Deschidere bază de cunoștințe sau pe Deschidere proiect calitate date pentru a obține lista fiecărei baze de cunoștințe sau a fiecărui proiect. Faceți clic cu butonul din dreapta pe numele bazei de cunoștințe sau numele proiectului, apoi faceți clic pe Ștergere. Puteți să efectuați următorul script Transact-SQL pentru a estima dimensiunea fiecărei baze de cunoștințe și fiecare proiect care se află în bazele de date DQS_MAIN și DQS_PROJECTS pentru a ecartament mai bine spațiul de pe disc care este consumat de fiecare.
-- DQSSizes.sql-- Version 1 - Nov 7, 2011 -JH-- Loops over each table in DQS_MAIN and DQS_PROJECTS to enumerate rows counts + index page counts to estimate size-- Reports by KB, then reports a drill in by Table within each KB-- Count Rows per objectUSE DQS_MAINGOCREATE TABLE ##DQSRowCounts (ObjId BIGINT, DBName SYSNAME, SchemaName SYSNAME, TableName SYSNAME, RowCounts BIGINT);EXEC sp_msforeachtable 'INSERT INTO ##DQSRowCounts SELECT OBJECT_ID(''?''), ''DQS_MAIN'', OBJECT_SCHEMA_NAME(OBJECT_ID(''?'')), OBJECT_NAME(OBJECT_ID(''?'')), COUNT(*) FROM ? WITH (NOLOCK)';GOUSE DQS_PROJECTSGOEXEC sp_msforeachtable 'INSERT INTO ##DQSRowCounts SELECT OBJECT_ID(''?''), ''DQS_PROJECTS'', OBJECT_SCHEMA_NAME(OBJECT_ID(''?'')), OBJECT_NAME(OBJECT_ID(''?'')), COUNT(*) FROM ? WITH (NOLOCK)';-- count pages per object CREATE TABLE ##DQSsizes(DbId INT, objid BIGINT, PageCount INT)INSERT INTO ##DQSsizes SELECT DB_ID('DQS_MAIN'), object_id, SUM(PS.page_count)FROM sys.dm_db_index_physical_stats (DB_ID('DQS_MAIN'),NULL, NULL, NULL, NULL) PSGROUP BY object_idINSERT INTO ##DQSsizes SELECT DB_ID('DQS_PROJECTS'), object_id, SUM(PS.page_count)FROM sys.dm_db_index_physical_stats (DB_ID('DQS_PROJECTS'),NULL, NULL, NULL, NULL) PSGROUP BY object_idGO-- Rows and Size per KBSELECT RC.DBName, RC.SchemaName, KB.Name AS KBProject, SUM(RC.RowCounts) AS TotalRowsAcrossAllTables, SUM(S.PageCount)*8 AS EstimatedKBSizeinKiloBytes,KB.ORIGIN_KNOWLEDGEBASE, KB2.Name AS OriginKBName, KB.CREATED_BY, KB.CREATE_DATEFROM ##DQSsizes SJOIN ##DQSRowCounts RC ON S.DbId=DB_ID(RC.DBName) AND S.objid=RC.ObjIdLEFT OUTER JOIN DQS_MAIN.dbo.A_KNOWLEDGEBASE KB WITH (NOLOCK)ON RC.SchemaName = ( CASEWHEN (RC.SchemaName LIKE 'KnowledgeBase%') THEN 'KnowledgeBase'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'DQProject%') THEN 'DQProject'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'KnowledgeManagement%') THEN 'KnowledgeManagement'+CAST(KB.ID AS NVARCHAR) END)LEFT OUTER JOIN DQS_MAIN.dbo.A_KNOWLEDGEBASE KB2 WITH (NOLOCK)ON KB.ORIGIN_KNOWLEDGEBASE=KB2.IDGROUP BY DBName, SchemaName, KB.Name, KB.ORIGIN_KNOWLEDGEBASE, KB2.Name, KB.CREATED_BY, KB.CREATE_DATEORDER BY DBName, SchemaName, KB.NameGO-- Rows and Size per Table per KBSELECT RC.DBName, RC.SchemaName, KB.Name AS KBProject, RC.TableName, RC.RowCounts, S.PageCount*8 AS EstKiloByteSizeFROM ##DQSsizes SLEFT OUTER JOIN ##DQSRowCounts RC ON S.DbId=DB_ID(RC.DBName) AND S.objid=RC.ObjIdLEFT OUTER JOIN DQS_MAIN.dbo.A_KNOWLEDGEBASE KB WITH (NOLOCK)ON RC.SchemaName = ( CASEWHEN (RC.SchemaName LIKE 'KnowledgeBase%') THEN 'KnowledgeBase'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'DQProject%') THEN 'DQProject'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'KnowledgeManagement%') THEN 'KnowledgeManagement'+CAST(KB.ID AS NVARCHAR) END)ORDER BY DBName, SchemaName, KBProject, TableNameGODROP TABLE ##DQSsizesDROP TABLE ##DQSRowCounts
Mai multe informații
După ce instalați această remediere rapidă, când DQS creează tabelul intern X_INDEX_DATA_SOURCE_TABLE în cadrul schemei fiecărui proiect, indiciul SPARSE este utilizat în coloanele BigInt pentru a minimiza spațiul utilizat de rânduri și coloane necompletate pentru a minimiza spațiul de pe disc necesar pentru a reține acele obiecte. Această remediere rapidă permite DQS să lanseze obiectul tranzitoriu X_INDEX_DATA_SOURCE_TABLE. Prin urmare, spațiul poate fi reutilizat sau dimensiunea bazei de date poate fi redusă după ce se publică baza de cunoștințe sau proiectul calitate date s-a terminat. Prin urmare, atunci când faceți clic pe butonul Terminare de la sfârșitul proiectelor, ajutați la eliberarea spațiului pe disc consumat de activitate.