CORRECTIF : SSAS se bloque lorsque la valeur numérique calculée de colonne doit modifier son schéma de codage au cours de la phase de ProcessRecalc

N° de bogue : 10195260 (sqlbuvsts01)
N° de bogue : 8958832 (sqlbuvsts01)
N° de bogue : 9100139 (sqlbuvsts01)
N° de bogue : 63094 (idée du contenu)
N° de bogue : 56587 (idée du contenu)

Symptômes

Considérez le scénario suivant :

  • Vous utilisez 2017 de SQL Server ou SQL Server 2016 Analysis Services (SSAS) sous forme de tableau.

  • Votre modèle contient des tables qui contiennent plusieurs partitions.

  • Vous avez une table qui contient au moins deux colonnes calculées.

  • Au moins une de ces colonnes calculées est numérique. Cela inclut les types de données nombre décimal, une deviseou un nombre entier.

  • Vous démarrez une transaction de traitement qui inclut la phase de ProcessRecalc , ProcessRecalc, ProcessDefaultou ProcessFull.


Dans ce scénario, le SSAS instance se bloque lors de la phase de ProcessRecalc de la transaction de traitement.

Résolution

Pour SQL Server, ce problème est résolu dans les mises à jour cumulatives suivantes :

Mise à jour cumulative 1 pour SQL Server 2017

Mises à jour cumulatives 4 pour le Service Pack 1 de SQL Server 2016

Mises à jour cumulatives 4 pour SQL Server 2016

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et de sécurité inclus dans la mise à jour cumulative précédente. Découvrez les dernières mises à jour cumulatives pour SQL Server :

Dernière mise à jour cumulative SQL Server 2017

Dernière mise à jour cumulative SQL Server 2016

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Informations de pile d’appels

Pour le modèle de 1200, il ressemble à ceci :

0:065 > kc
Trace de la pile pour le dernier contexte -.thread/.cxr réinitialise
# Site d’appel
KERNELBASE 00 ! RaiseException
01 msmdsrv ! CDmpDump::Dump
02 msmdsrv ! PFWatsonMiniDumpToLocalFile
03 msmdsrv ! PFSetLastErrorFromExceptionExTag
04 msmdsrv ! PFSetErrorInfoFromException
05 msmdsrv ! PFHandleUnsupportedException
06 msvcr120 ! _purecall
07 xmsrv ! XMSchema::MaterializeObject
08 xmsrv ! XMSchema::MaterializeObject
09 xmsrv ! XMSchema::MaterializeObject
0a xmsrv!XMSchema::MaterializeObject
0b xmsrv!XMSchema::MaterializeTable
0c xmsrv!XMDataEncoder::HVEEditPartition
0d xmsrv!XMDataEncoder::HandleValueEncodingError<double>
0e xmsrv!XMDataEncoder::EncodeCachedValues
0f xmsrv!XMDataEncoder::FlushCache
10 xmsrv ! XMDataEncoder::ReadAndEncode
11 xmsrv ! XMDataEncoder::EncodeData
12 xmsrv ! XMProcessCalculatedColumn::Execute
13 tmtransactions ! TMProcessCalcColumnJob::ExecuteRequest
14 tmtransactions ! TMProcessCalcColumnJob::ProcessRecalc
15 tmtransactions ! TMProcessCalcColumnJob::ExecuteInternal
16 tmtransactions ! TMJobRunnerTask::ExecuteJob
17 tmtransactions ! TMJobRunnerTask::ExecuteTask
18 msmdsrv ! PFThreadPool::ExecuteJob
19 msmdsrv ! PFThreadPool::WorkerMethod
1a msmdsrv!PFCommandThreadPool::ThreadProc
1b msmdsrv!PFThreadPool::ThreadProcWrapperForPFThreadPool
1c msvcr120!_callthreadstartex
1d msvcr120!_threadstartex
1e kernel32!BaseThreadInitThunk
1f, ntdll ! RtlUserThreadStart pour le même problème de modèle 1103 se produit et que la pile est un peu plus détaillé : 0:067 > kc


Trace de la pile pour le dernier contexte -.thread/.cxr réinitialise
# Site d’appel
xmsrv 00 ! opérateur delete
01 xmsrv ! PF_DELETE
02 xmsrv ! PFObjectImpl < PFObjectMemorySupport, PFObjectRoot > :: Release
03 xmsrv ! PF_RELEASE
04 xmsrv ! PFVectorSupport::RefCountableManip < XMSchemaContext > :: OnDelete
05 xmsrv ! PFVectorBase < XMSchemaContext * __ptr64, PFVectorSupport::RefCountableManip < XMSchemaContext >> :: clair
06 xmsrv ! PFVectorBase < PFXMISerializable *, PFVectorSupport::RefCountableManip < PFXMISerializable >> :: réinitialiser
07 xmsrv ! PFXMSerializableCollectionBase < PFXMISerializable > :: réinitialiser
08 xmsrv ! XMRawColumnPartitionDataObject :: ~ XMRawColumnPartitionDataObject
09 xmsrv ! PFFastObject < XMRawColumnPartitionDataObject, PFMultiThreadSupport > :: Release
0a xmsrv!PF_RELEASE
0b xmsrv!PFVectorSupport::RefCountableManip<XMSchemaContext>::OnDelete
xmsrv de 0c ! PFVectorBase < XMSchemaContext * __ptr64, PFVectorSupport::RefCountableManip < XMSchemaContext >> :: clair
xmsrv de 0d ! PFVectorBase < PFXMISerializableDataObject *, PFVectorSupport::RefCountableManip < PFXMISerializableDataObject >> :: réinitialiser
xmsrv de 0E ! PFVectorBase < PFXMISerializableDataObject *, PFVectorSupport::RefCountableManip < PFXMISerializableDataObject >> :: {dtor}
0f xmsrv!PFXMSerializableCollectionBase<PFXMISerializableDataObject>::~PFXMSerializableCollectionBase<PFXMISerializableDataObject>
10 xmsrv ! XMRawColumn::OnMaterialize
11 xmsrv ! XMSchema::MaterializeObject
12 xmsrv ! XMSchema::MaterializeObject
13 xmsrv ! XMSchema::MaterializeTable
14 xmsrv ! XMDataEncoder::HVEEditPartition
15 xmsrv ! XMDataEncoder::HandleValueEncodingError < double >
16 xmsrv ! XMDataEncoder::EncodeCachedValues
17 xmsrv ! XMDataEncoder::FlushCache
18 xmsrv ! XMDataEncoder::ReadAndEncode
19 xmsrv ! XMDataEncoder::EncodeData
1a xmsrv!XMProcessCalculatedColumn::Execute
1b msmdsrv!MDXMProcessCalcColumnJob::InternalExecute
1c msmdsrv!MDXMProcessCalcColumnJob::LaunchOperationInternal
1d msmdsrv!PCJob::LaunchOperation
1e msmdsrv!PCJob::ExecuteTask
1f msmdsrv!PFThreadPool::ExecuteJob
20 msmdsrv ! PFThreadPool::WorkerMethod
21 msmdsrv ! PFParsingShortThreadPool::ThreadProc
22 msmdsrv ! PFThreadPool::ThreadProcWrapperForPFThreadPool
23 msvcr120 ! _callthreadstartex
24 msvcr120 ! _threadstartex
25 kernel32 ! BaseThreadInitThunk
26 ntdll ! RtlUserThreadStart

Références

Obtenir des informations sur la terminologieque Microsoft utilise pour décrire les mises à jour logicielles.

KE : v-fmeng
Auteur :
Writer : v-thomr
Réviseur technique :, akshaim ; gertc ; v-fmeng ; sqlprev ; daleche
Éditeur : v-rhowar

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×