Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Sümptomid

Arvutis, kus töötab Microsoft SQL Server 2008, kaaluge järgmisi stsenaariume.

1. stsenaarium

Saate määrata tabeli avaldise abil levinud tabeli avaldise (CTE). Näiteks käivitage järgmine päring.

WITH common_table_expression AS (SELECT * FROM sys.objects)(SELECT * FROM common_table_expression)

Seejärel käivitate selle päringu.

SELECT *FROM sys.dm_exec_query_statsWHERE statement_start_offset > statement_end_offsetANDstatement_end_offset <> -1

Selle stsenaariumi korral talletab selle päringu vahemällu talletatud päringute plaan ebaõiged statement_start_offset ja statement_end_offset väärtused. Täpsemalt märkate, et statement_end_offset väärtus on väiksem kui statement_start_offset väärtus, kui käivitate sys.dm_exec_query_stats dünaamilise halduse vaates (DMV). Selle probleemi tõttu võib jõudluse aruanne nurjuda, kui aruanne eeldab, et statement_start_offset väärtus on alati väiksem kui statement_stop_offset väärtus.

2. stsenaarium

Saate määrata avaldise abil levinud tabeli avaldise ja kasutada siis uuesti KOMPILEERImise võimalust. Näiteks saate luua funktsiooni SQL Server 2008, kasutades järgmist skripti.

CREATE FUNCTION function1() RETURNS int ASBEGINDECLARE @x intSET @x=1;WITH common_table_expression AS (SELECT @x AS column1) (SELECT @x=column1 FROM common_table_expression) OPTION(RECOMPILE)RETURN @xEND

Kui käivitate päringu "Select dbo. function1 ()", kuvatakse järgmine tõrketeade:

Praegusel käsul ilmnes tõsine tõrge. Tulemid, kui need on olemas, tuleks hävitada.

See tõrge võib ilmneda ka siis, kui SQL serveril on raske server liiklust.

Stsenaarium 3

Saate määrata avaldise abil levinud tabeli avaldise. Jaotises lause saate määrata tabeli, mida pole olemas. Näiteks käivitage järgmine päring.

WITH computed_table (id) AS(SELECT id FROM this_table_does_not_exist) (SELECT id FROM dbo.computed_table) GO

Kui käivitate selle päringu, ei kuvata puuduvate tabelite tõrkeid.

Põhjus

Need probleemid ilmnevad tõrke tõttu, mis on seotud lausega, mis järgneb lausele. KOOS avaldusega kasutatakse järgmist süntaksit.

WITH common_table_expression AS(CTE_query_definition)

See lause loob tulemite kogumi, mis on määratud levinud tabeli avaldise nimele. Seejärel Jälgige seda lauset SELECT-lausega. Kui see teine lause on sulgudes ja proovite tulemusi sooritada või proovite käivitada sys.dm_exec_query_stats dünaamilise halduse vaadet, kuvatakse valed tulemid või tõrge.

Lahendus

Hoolduspaketi teave Selle probleemi lahendamiseks hankige uusim hoolduspakett SQL Server 2008. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

968382 SQL Server 2008 uusima hoolduspaketi hankimine

Lahendus

Nende probleemide lahendamiseks peate eemaldama sulgudes oleva lause, mis järgneb tabelile levinud avaldis. Näiteks Kaaluge järgmist lauset, mis kasutab selliseid sulgusid.

WITH common_table_expression AS (SELECT *FROM sys.objects)(SELECT * FROM common_table_expression)

Nende probleemide lahendamiseks muutke järgmist lauset, mis ei kasuta neid sulgudes.

WITH common_table_expression AS (SELECT *FROM sys.objects)SELECT * FROM common_table_expressio

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes. See probleem parandati esmalt SQL Server 2008 Service Pack 2 (SP2).

Lisateave

Lisateavet selle kohta, kuidas kasutada lauset koos levinud tabeli avaldisega, leiate järgmisest MSDN-i veebilehelt.

Common_table_expressionga (Transact-SQL)Sys.dm_exec_query_stats kohta lisateabe saamiseks külastage järgmist MSDN-i veebilehte:

sys.dm_exec_query_stats (Transact-SQL)

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×