├── .editorconfig ├── .gitattributes ├── .gitignore ├── LICENSE ├── docs └── SQLSat696 │ ├── Advanced SQL Server troubleshooting with SQLCallStackResolver.pptx │ └── Demos │ ├── AV │ ├── SQLDump0011.txt │ ├── repro.sql │ └── resolved.txt │ ├── Common │ ├── LINQPad.exe.config │ ├── lprun.exe.config │ ├── tempdb.sql │ └── tempdb_linux.sql │ ├── LOCK_HASH │ ├── SpinlockData.xml │ ├── XESpins_0_131627061603030000.zip │ ├── base_addresses.txt │ ├── extraprocs.sql │ ├── monitor.sql │ ├── repro.linq │ ├── resolved.txt │ ├── setup.sql │ └── xe_session.sql │ ├── Memobj │ ├── MemObjData.xml │ ├── Resolved.txt │ ├── TraceMemObj.sql │ ├── memobjleak.linq │ └── monitor.sql │ ├── OOM │ ├── CallStack.xml │ ├── ERRORLOG │ ├── resolved.txt │ └── xe_session_701.sql │ ├── PAGELATCH_EX │ ├── Monitor.sql │ ├── repro.sql │ ├── resolved.txt │ └── waitdata.xml │ ├── PAGELATCH_UP │ ├── CacheDB_StoredProcs.sql │ ├── CacheDB_Tables.sql │ ├── Monitor.sql │ ├── cleanupthread.sql │ ├── repro.linq │ └── setup.sql │ └── xe_wait_completed_0_132353446563350000.xel ├── lastupdated.txt ├── readme.md └── sqlbuildinfo.json /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.cs] 2 | 3 | # CA1051: Do not declare visible instance fields 4 | dotnet_diagnostic.CA1051.severity = none 5 | 6 | # CA1303: Do not pass literals as localized parameters 7 | dotnet_diagnostic.CA1303.severity = none 8 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | [Xx]64/ 19 | [Xx]86/ 20 | [Bb]uild/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | artifacts/ 46 | 47 | *_i.c 48 | *_p.c 49 | *_i.h 50 | *.ilk 51 | *.meta 52 | *.obj 53 | *.pch 54 | *.pdb 55 | *.pgc 56 | *.pgd 57 | *.rsp 58 | *.sbr 59 | *.tlb 60 | *.tli 61 | *.tlh 62 | *.tmp 63 | *.tmp_proj 64 | *.log 65 | *.vspscc 66 | *.vssscc 67 | .builds 68 | *.pidb 69 | *.svclog 70 | *.scc 71 | 72 | # Chutzpah Test files 73 | _Chutzpah* 74 | 75 | # Visual C++ cache files 76 | ipch/ 77 | *.aps 78 | *.ncb 79 | *.opendb 80 | *.opensdf 81 | *.sdf 82 | *.cachefile 83 | *.VC.db 84 | 85 | # Visual Studio profiler 86 | *.psess 87 | *.vsp 88 | *.vspx 89 | *.sap 90 | 91 | # TFS 2012 Local Workspace 92 | $tf/ 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | *.DotSettings.user 101 | 102 | # JustCode is a .NET coding add-in 103 | .JustCode 104 | 105 | # TeamCity is a build add-in 106 | _TeamCity* 107 | 108 | # DotCover is a Code Coverage Tool 109 | *.dotCover 110 | 111 | # NCrunch 112 | _NCrunch_* 113 | .*crunch*.local.xml 114 | nCrunchTemp_* 115 | 116 | # MightyMoose 117 | *.mm.* 118 | AutoTest.Net/ 119 | 120 | # Web workbench (sass) 121 | .sass-cache/ 122 | 123 | # Installshield output folder 124 | [Ee]xpress/ 125 | 126 | # DocProject is a documentation generator add-in 127 | DocProject/buildhelp/ 128 | DocProject/Help/*.HxT 129 | DocProject/Help/*.HxC 130 | DocProject/Help/*.hhc 131 | DocProject/Help/*.hhk 132 | DocProject/Help/*.hhp 133 | DocProject/Help/Html2 134 | DocProject/Help/html 135 | 136 | # Click-Once directory 137 | publish/ 138 | 139 | # Publish Web Output 140 | *.[Pp]ublish.xml 141 | *.azurePubxml 142 | 143 | # TODO: Un-comment the next line if you do not want to checkin 144 | # your web deploy settings because they may include unencrypted 145 | # passwords 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # NuGet Packages 150 | *.nupkg 151 | # The packages folder can be ignored because of Package Restore 152 | **/packages/* 153 | # except build/, which is used as an MSBuild target. 154 | !**/packages/build/ 155 | # Uncomment if necessary however generally it will be regenerated when needed 156 | #!**/packages/repositories.config 157 | # NuGet v3's project.json files produces more ignoreable files 158 | *.nuget.props 159 | *.nuget.targets 160 | 161 | # Microsoft Azure Build Output 162 | csx/ 163 | *.build.csdef 164 | 165 | # Microsoft Azure Emulator 166 | ecf/ 167 | rcf/ 168 | 169 | # Windows Store app package directory 170 | AppPackages/ 171 | BundleArtifacts/ 172 | 173 | # Visual Studio cache files 174 | # files ending in .cache can be ignored 175 | *.[Cc]ache 176 | # but keep track of directories ending in .cache 177 | !*.[Cc]ache/ 178 | 179 | # Others 180 | ClientBin/ 181 | [Ss]tyle[Cc]op.* 182 | ~$* 183 | *~ 184 | *.dbmdl 185 | *.dbproj.schemaview 186 | *.pfx 187 | *.publishsettings 188 | node_modules/ 189 | orleans.codegen.cs 190 | 191 | # RIA/Silverlight projects 192 | Generated_Code/ 193 | 194 | # Backup & report files from converting an old project file 195 | # to a newer Visual Studio version. Backup files are not needed, 196 | # because we have git ;-) 197 | _UpgradeReport_Files/ 198 | Backup*/ 199 | UpgradeLog*.XML 200 | UpgradeLog*.htm 201 | 202 | # SQL Server files 203 | *.mdf 204 | *.ldf 205 | 206 | # Business Intelligence projects 207 | *.rdl.data 208 | *.bim.layout 209 | *.bim_*.settings 210 | 211 | # Microsoft Fakes 212 | FakesAssemblies/ 213 | 214 | # GhostDoc plugin setting file 215 | *.GhostDoc.xml 216 | 217 | # Node.js Tools for Visual Studio 218 | .ntvs_analysis.dat 219 | 220 | # Visual Studio 6 build log 221 | *.plg 222 | 223 | # Visual Studio 6 workspace options file 224 | *.opt 225 | 226 | # Visual Studio LightSwitch build output 227 | **/*.HTMLClient/GeneratedArtifacts 228 | **/*.DesktopClient/GeneratedArtifacts 229 | **/*.DesktopClient/ModelManifest.xml 230 | **/*.Server/GeneratedArtifacts 231 | **/*.Server/ModelManifest.xml 232 | _Pvt_Extensions 233 | 234 | # LightSwitch generated files 235 | GeneratedArtifacts/ 236 | ModelManifest.xml 237 | 238 | # Paket dependency manager 239 | .paket/paket.exe 240 | 241 | # FAKE - F# Make 242 | .fake/ 243 | /Samples/ctp1.2.testing.txt 244 | /Samples 245 | /docs/SQLSat696/Demos/AV/SQLDump0011.mdmp 246 | /docs/SQLSat696/Demos/LOCK_HASH/XPerfData 247 | /docs/SQLSat696/Demos/LOCK_HASH/XESpins_0_131627061603030000.xel 248 | /docs/SQLSat696/Symbols 249 | /docs/SQLSat696/Demos/LOCK_HASH/perfmonsettings.htm 250 | /docs/SQLSat696/Demos/Private 251 | /Tests/TestCases/TestOrdinal/sqldk.dll 252 | /SQLCallstackResolver.Downloader 253 | /SQLBuilds.xlsx 254 | /Downloader 255 | /sqlbuildinfo.zip 256 | /Downloader 257 | /Tests/TestCases/ImportXEL/*.xel 258 | /TestResults/ 259 | Tests/TestCases/ImportXEL/base_addresses.txt 260 | copybinaries.ps1 261 | copypdbs.ps1 262 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Arvind Shyamsundar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/SQLSat696/Advanced SQL Server troubleshooting with SQLCallStackResolver.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Advanced SQL Server troubleshooting with SQLCallStackResolver.pptx -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/AV/SQLDump0011.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Demos/AV/SQLDump0011.txt -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/AV/repro.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [dbo].[References] 2 | ( 3 | INDEX [GRAPH_UNIQUE_INDEX_References] UNIQUE NONCLUSTERED ($edge_id), 4 | INDEX [GRAPH_FromTo_INDEX_References] ($from_id, $to_id), 5 | INDEX CCI_References CLUSTERED COLUMNSTORE, 6 | dummy bit 7 | ) 8 | AS EDGE 9 | 10 | /* 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 14 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 15 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 16 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 17 | SOFTWARE. 18 | 19 | This sample code is not supported under any Microsoft standard support program or service. 20 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 21 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 22 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 23 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 24 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 25 | */ 26 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/AV/resolved.txt: -------------------------------------------------------------------------------- 1 | sqllang!CIndexDef::CreateIndex 2 | sqllang!E_CNSTINDEX::Execute 3 | sqllang!E_CNSTCRT::Execute 4 | sqllang!CTableCreate::CreateRelation 5 | sqllang!CTableCreate::LCreateImpl 6 | sqllang!CStmtCreateTable::XretCreateTableExecute 7 | sqllang!CXStmtCreateTableDDL::XretExecute 8 | sqllang!CMsqlExecContext::ExecuteStmts<1,1> 9 | sqllang!CMsqlExecContext::FExecute 10 | sqllang!CSQLSource::Execute 11 | sqllang!process_request 12 | sqllang!process_commands_internal 13 | sqllang!process_messages 14 | sqldk!SOS_Task::Param::Execute 15 | sqldk!SOS_Scheduler::RunTask 16 | sqldk!SOS_Scheduler::ProcessTasks 17 | sqldk!SchedulerManager::WorkerEntryPoint 18 | sqldk!SystemThread::RunWorker 19 | sqldk!SystemThreadDispatcher::ProcessWorker 20 | sqldk!SchedulerManager::ThreadEntryPoint 21 | 00007FFC22DB1FE4 Module(KERNEL32+0000000000011FE4) 22 | 00007FFC255DEFB1 Module(ntdll+000000000006EFB1) 23 | 24 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/Common/LINQPad.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/Common/lprun.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/Common/tempdb.sql: -------------------------------------------------------------------------------- 1 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = tempdev, FILENAME = 'f:\data\tempdev.mdf'); 2 | ALTER DATABASE tempdb ADD FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp2, FILENAME = 'f:\data\tempdev2.mdf'); 3 | ALTER DATABASE tempdb ADD FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp3, FILENAME = 'f:\data\tempdev3.mdf'); 4 | ALTER DATABASE tempdb ADD FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp4, FILENAME = 'f:\data\tempdev4.mdf'); 5 | ALTER DATABASE tempdb ADD FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp5, FILENAME = 'f:\data\tempdev5.mdf'); 6 | ALTER DATABASE tempdb ADD FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp6, FILENAME = 'f:\data\tempdev6.mdf'); 7 | ALTER DATABASE tempdb ADD FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp7, FILENAME = 'f:\data\tempdev7.mdf'); 8 | ALTER DATABASE tempdb ADD FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp8, FILENAME = 'f:\data\tempdev8.mdf'); 9 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp9, FILENAME = 'f:\data\tempdev9.mdf'); 10 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp10, FILENAME = 'f:\data\tempdev10.mdf'); 11 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp11, FILENAME = 'f:\data\tempdev11.mdf'); 12 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp12, FILENAME = 'f:\data\tempdev12.mdf'); 13 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp13, FILENAME = 'f:\data\tempdev13.mdf'); 14 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp14, FILENAME = 'f:\data\tempdev14.mdf'); 15 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp15, FILENAME = 'f:\data\tempdev15.mdf'); 16 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp16, FILENAME = 'f:\data\tempdev16.mdf'); 17 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp17, FILENAME = 'f:\data\tempdev17.mdf'); 18 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp18, FILENAME = 'f:\data\tempdev18.mdf'); 19 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp19, FILENAME = 'f:\data\tempdev19.mdf'); 20 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp20, FILENAME = 'f:\data\tempdev20.mdf'); 21 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp21, FILENAME = 'f:\data\tempdev21.mdf'); 22 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp22, FILENAME = 'f:\data\tempdev22.mdf'); 23 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp23, FILENAME = 'f:\data\tempdev23.mdf'); 24 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp24, FILENAME = 'f:\data\tempdev24.mdf'); 25 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp25, FILENAME = 'f:\data\tempdev25.mdf'); 26 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp26, FILENAME = 'f:\data\tempdev26.mdf'); 27 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp27, FILENAME = 'f:\data\tempdev27.mdf'); 28 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp28, FILENAME = 'f:\data\tempdev28.mdf'); 29 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp29, FILENAME = 'f:\data\tempdev29.mdf'); 30 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp30, FILENAME = 'f:\data\tempdev30.mdf'); 31 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp31, FILENAME = 'f:\data\tempdev31.mdf'); 32 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp32, FILENAME = 'f:\data\tempdev32.mdf'); 33 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp33, FILENAME = 'f:\data\tempdev33.mdf'); 34 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp34, FILENAME = 'f:\data\tempdev34.mdf'); 35 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp35, FILENAME = 'f:\data\tempdev35.mdf'); 36 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp36, FILENAME = 'f:\data\tempdev36.mdf'); 37 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp37, FILENAME = 'f:\data\tempdev37.mdf'); 38 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp38, FILENAME = 'f:\data\tempdev38.mdf'); 39 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp39, FILENAME = 'f:\data\tempdev39.mdf'); 40 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp40, FILENAME = 'f:\data\tempdev40.mdf'); 41 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp41, FILENAME = 'f:\data\tempdev41.mdf'); 42 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp42, FILENAME = 'f:\data\tempdev42.mdf'); 43 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp43, FILENAME = 'f:\data\tempdev43.mdf'); 44 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp44, FILENAME = 'f:\data\tempdev44.mdf'); 45 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp45, FILENAME = 'f:\data\tempdev45.mdf'); 46 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp46, FILENAME = 'f:\data\tempdev46.mdf'); 47 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp47, FILENAME = 'f:\data\tempdev47.mdf'); 48 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp48, FILENAME = 'f:\data\tempdev48.mdf'); 49 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp49, FILENAME = 'f:\data\tempdev49.mdf'); 50 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp50, FILENAME = 'f:\data\tempdev50.mdf'); 51 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp51, FILENAME = 'f:\data\tempdev51.mdf'); 52 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp52, FILENAME = 'f:\data\tempdev52.mdf'); 53 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp53, FILENAME = 'f:\data\tempdev53.mdf'); 54 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp54, FILENAME = 'f:\data\tempdev54.mdf'); 55 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp55, FILENAME = 'f:\data\tempdev55.mdf'); 56 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp56, FILENAME = 'f:\data\tempdev56.mdf'); 57 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp57, FILENAME = 'f:\data\tempdev57.mdf'); 58 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp58, FILENAME = 'f:\data\tempdev58.mdf'); 59 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp59, FILENAME = 'f:\data\tempdev59.mdf'); 60 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp60, FILENAME = 'f:\data\tempdev60.mdf'); 61 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp61, FILENAME = 'f:\data\tempdev61.mdf'); 62 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp62, FILENAME = 'f:\data\tempdev62.mdf'); 63 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp63, FILENAME = 'f:\data\tempdev63.mdf'); 64 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp64, FILENAME = 'f:\data\tempdev64.mdf'); 65 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp65, FILENAME = 'f:\data\tempdev65.mdf'); 66 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp66, FILENAME = 'f:\data\tempdev66.mdf'); 67 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp67, FILENAME = 'f:\data\tempdev67.mdf'); 68 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp68, FILENAME = 'f:\data\tempdev68.mdf'); 69 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp69, FILENAME = 'f:\data\tempdev69.mdf'); 70 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp70, FILENAME = 'f:\data\tempdev70.mdf'); 71 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp71, FILENAME = 'f:\data\tempdev71.mdf'); 72 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp72, FILENAME = 'f:\data\tempdev72.mdf'); 73 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp73, FILENAME = 'f:\data\tempdev73.mdf'); 74 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp74, FILENAME = 'f:\data\tempdev74.mdf'); 75 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp75, FILENAME = 'f:\data\tempdev75.mdf'); 76 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp76, FILENAME = 'f:\data\tempdev76.mdf'); 77 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp77, FILENAME = 'f:\data\tempdev77.mdf'); 78 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp78, FILENAME = 'f:\data\tempdev78.mdf'); 79 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp79, FILENAME = 'f:\data\tempdev79.mdf'); 80 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp80, FILENAME = 'f:\data\tempdev80.mdf'); 81 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp81, FILENAME = 'f:\data\tempdev81.mdf'); 82 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp82, FILENAME = 'f:\data\tempdev82.mdf'); 83 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp83, FILENAME = 'f:\data\tempdev83.mdf'); 84 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp84, FILENAME = 'f:\data\tempdev84.mdf'); 85 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp85, FILENAME = 'f:\data\tempdev85.mdf'); 86 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp86, FILENAME = 'f:\data\tempdev86.mdf'); 87 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp87, FILENAME = 'f:\data\tempdev87.mdf'); 88 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp88, FILENAME = 'f:\data\tempdev88.mdf'); 89 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp89, FILENAME = 'f:\data\tempdev89.mdf'); 90 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp90, FILENAME = 'f:\data\tempdev90.mdf'); 91 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp91, FILENAME = 'f:\data\tempdev91.mdf'); 92 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp92, FILENAME = 'f:\data\tempdev92.mdf'); 93 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp93, FILENAME = 'f:\data\tempdev93.mdf'); 94 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp94, FILENAME = 'f:\data\tempdev94.mdf'); 95 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp95, FILENAME = 'f:\data\tempdev95.mdf'); 96 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp96, FILENAME = 'f:\data\tempdev96.mdf'); 97 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp97, FILENAME = 'f:\data\tempdev97.mdf'); 98 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp98, FILENAME = 'f:\data\tempdev98.mdf'); 99 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp99, FILENAME = 'f:\data\tempdev99.mdf'); 100 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp100, FILENAME = 'f:\data\tempdev100.mdf'); 101 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp101, FILENAME = 'f:\data\tempdev101.mdf'); 102 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp102, FILENAME = 'f:\data\tempdev102.mdf'); 103 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp103, FILENAME = 'f:\data\tempdev103.mdf'); 104 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp104, FILENAME = 'f:\data\tempdev104.mdf'); 105 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp105, FILENAME = 'f:\data\tempdev105.mdf'); 106 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp106, FILENAME = 'f:\data\tempdev106.mdf'); 107 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp107, FILENAME = 'f:\data\tempdev107.mdf'); 108 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp108, FILENAME = 'f:\data\tempdev108.mdf'); 109 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp109, FILENAME = 'f:\data\tempdev109.mdf'); 110 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp110, FILENAME = 'f:\data\tempdev110.mdf'); 111 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp111, FILENAME = 'f:\data\tempdev111.mdf'); 112 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp112, FILENAME = 'f:\data\tempdev112.mdf'); 113 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp113, FILENAME = 'f:\data\tempdev113.mdf'); 114 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp114, FILENAME = 'f:\data\tempdev114.mdf'); 115 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp115, FILENAME = 'f:\data\tempdev115.mdf'); 116 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp116, FILENAME = 'f:\data\tempdev116.mdf'); 117 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp117, FILENAME = 'f:\data\tempdev117.mdf'); 118 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp118, FILENAME = 'f:\data\tempdev118.mdf'); 119 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp119, FILENAME = 'f:\data\tempdev119.mdf'); 120 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp120, FILENAME = 'f:\data\tempdev120.mdf'); 121 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp121, FILENAME = 'f:\data\tempdev121.mdf'); 122 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp122, FILENAME = 'f:\data\tempdev122.mdf'); 123 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp123, FILENAME = 'f:\data\tempdev123.mdf'); 124 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp124, FILENAME = 'f:\data\tempdev124.mdf'); 125 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp125, FILENAME = 'f:\data\tempdev125.mdf'); 126 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp126, FILENAME = 'f:\data\tempdev126.mdf'); 127 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp127, FILENAME = 'f:\data\tempdev127.mdf'); 128 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp128, FILENAME = 'f:\data\tempdev128.mdf'); 129 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp129, FILENAME = 'f:\data\tempdev129.mdf'); 130 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp130, FILENAME = 'f:\data\tempdev130.mdf'); 131 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp131, FILENAME = 'f:\data\tempdev131.mdf'); 132 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp132, FILENAME = 'f:\data\tempdev132.mdf'); 133 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp133, FILENAME = 'f:\data\tempdev133.mdf'); 134 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp134, FILENAME = 'f:\data\tempdev134.mdf'); 135 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp135, FILENAME = 'f:\data\tempdev135.mdf'); 136 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp136, FILENAME = 'f:\data\tempdev136.mdf'); 137 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp137, FILENAME = 'f:\data\tempdev137.mdf'); 138 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp138, FILENAME = 'f:\data\tempdev138.mdf'); 139 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp139, FILENAME = 'f:\data\tempdev139.mdf'); 140 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp140, FILENAME = 'f:\data\tempdev140.mdf'); 141 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp141, FILENAME = 'f:\data\tempdev141.mdf'); 142 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp142, FILENAME = 'f:\data\tempdev142.mdf'); 143 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp143, FILENAME = 'f:\data\tempdev143.mdf'); 144 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 50MB, FILEGROWTH = 500MB, NAME = temp144, FILENAME = 'f:\data\tempdev144.mdf'); 145 | GO 146 | ALTER DATABASE tempdb MODIFY FILE (SIZE = 60000MB, NAME = templog, FILENAME = 'f:\data\templog.ldf'); 147 | GO 148 | 149 | 150 | EXEC tempdb..sp_helpfile -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/Common/tempdb_linux.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Demos/Common/tempdb_linux.sql -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/SpinlockData.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | sqldk.dll+0x00000000000FD919 4 | sqldk.dll+0x000000000003D45D 5 | sqlmin.dll+0x0000000000017EE0 6 | sqlmin.dll+0x00000000000180CF 7 | sqlmin.dll+0x000000000010E447 8 | sqlmin.dll+0x000000000010E6F5 9 | sqlmin.dll+0x00000000000F48B0 10 | sqlmin.dll+0x000000000063475A 11 | sqllang.dll+0x00000000004108F1 12 | sqllang.dll+0x0000000000331FB9 13 | sqllang.dll+0x0000000000333D21 14 | sqllang.dll+0x00000000003559F1 15 | sqllang.dll+0x0000000000355055 16 | sqllang.dll+0x0000000000352B8F 17 | sqllang.dll+0x0000000000015AD1 18 | sqllang.dll+0x0000000000011EFB 19 | sqllang.dll+0x0000000000D1D83D 20 | sqllang.dll+0x0000000000D1D241 21 | sqllang.dll+0x0000000000D19F98 22 | sqllang.dll+0x00000000000119CA 23 | sqllang.dll+0x0000000000012933 24 | sqllang.dll+0x0000000000012041 25 | sqllang.dll+0x000000000001A82B 26 | sqllang.dll+0x0000000000021542 27 | 28 | 29 | sqldk.dll+0x00000000000FD919 30 | sqldk.dll+0x000000000003D45D 31 | sqlmin.dll+0x0000000000017EE0 32 | sqlmin.dll+0x000000000007CE32 33 | sqlmin.dll+0x00000000000EE596 34 | sqlmin.dll+0x0000000000011E2A 35 | sqlmin.dll+0x0000000000011D5A 36 | sqlmin.dll+0x0000000000011988 37 | sqlmin.dll+0x0000000000011A1C 38 | sqllang.dll+0x0000000000355D1A 39 | sqllang.dll+0x0000000000355055 40 | sqllang.dll+0x0000000000352B8F 41 | sqllang.dll+0x0000000000015AD1 42 | sqllang.dll+0x0000000000011EFB 43 | sqllang.dll+0x0000000000D1D83D 44 | sqllang.dll+0x0000000000D1D241 45 | sqllang.dll+0x0000000000D19F98 46 | sqllang.dll+0x00000000000119CA 47 | sqllang.dll+0x0000000000012933 48 | sqllang.dll+0x0000000000012041 49 | sqllang.dll+0x000000000001A82B 50 | sqllang.dll+0x0000000000021542 51 | sqllang.dll+0x00000000000210A3 52 | sqldk.dll+0x0000000000005BFD 53 | 54 | 55 | sqldk.dll+0x00000000000FD919 56 | sqldk.dll+0x000000000003D45D 57 | sqldk.dll+0x000000000002486B 58 | sqlmin.dll+0x0000000000017EE0 59 | sqlmin.dll+0x00000000000180CF 60 | sqlmin.dll+0x000000000010E447 61 | sqlmin.dll+0x000000000010E6F5 62 | sqlmin.dll+0x00000000000F48B0 63 | sqlmin.dll+0x000000000063475A 64 | sqllang.dll+0x00000000004108F1 65 | sqllang.dll+0x0000000000331FB9 66 | sqllang.dll+0x0000000000333D21 67 | sqllang.dll+0x00000000003559F1 68 | sqllang.dll+0x0000000000355055 69 | sqllang.dll+0x0000000000352B8F 70 | sqllang.dll+0x0000000000015AD1 71 | sqllang.dll+0x0000000000011EFB 72 | sqllang.dll+0x0000000000D1D83D 73 | sqllang.dll+0x0000000000D1D241 74 | sqllang.dll+0x0000000000D19F98 75 | sqllang.dll+0x00000000000119CA 76 | sqllang.dll+0x0000000000012933 77 | sqllang.dll+0x0000000000012041 78 | sqllang.dll+0x000000000001A82B 79 | 80 | 81 | sqldk.dll+0x00000000000FD919 82 | sqldk.dll+0x000000000003D45D 83 | sqldk.dll+0x000000000002486B 84 | sqlmin.dll+0x0000000000017EE0 85 | sqlmin.dll+0x000000000007CE32 86 | sqlmin.dll+0x00000000000EE596 87 | sqlmin.dll+0x0000000000011E2A 88 | sqlmin.dll+0x0000000000011D5A 89 | sqlmin.dll+0x0000000000011988 90 | sqlmin.dll+0x0000000000011A1C 91 | sqllang.dll+0x0000000000355D1A 92 | sqllang.dll+0x0000000000355055 93 | sqllang.dll+0x0000000000352B8F 94 | sqllang.dll+0x0000000000015AD1 95 | sqllang.dll+0x0000000000011EFB 96 | sqllang.dll+0x0000000000D1D83D 97 | sqllang.dll+0x0000000000D1D241 98 | sqllang.dll+0x0000000000D19F98 99 | sqllang.dll+0x00000000000119CA 100 | sqllang.dll+0x0000000000012933 101 | sqllang.dll+0x0000000000012041 102 | sqllang.dll+0x000000000001A82B 103 | sqllang.dll+0x0000000000021542 104 | sqllang.dll+0x00000000000210A3 105 | 106 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/XESpins_0_131627061603030000.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Demos/LOCK_HASH/XESpins_0_131627061603030000.zip -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/base_addresses.txt: -------------------------------------------------------------------------------- 1 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\sqlservr.exe 0x00007FF6E0900000 2 | C:\Windows\SYSTEM32\ntdll.dll 0x00007FFEC3980000 3 | C:\Windows\System32\KERNEL32.DLL 0x00007FFEC2C30000 4 | C:\Windows\System32\KERNELBASE.dll 0x00007FFEC0700000 5 | C:\Windows\System32\ADVAPI32.dll 0x00007FFEC2530000 6 | C:\Windows\System32\msvcrt.dll 0x00007FFEC0F10000 7 | C:\Windows\System32\sechost.dll 0x00007FFEC2D00000 8 | C:\Windows\SYSTEM32\NETAPI32.dll 0x00007FFEBCB10000 9 | C:\Windows\System32\RPCRT4.dll 0x00007FFEC2F40000 10 | C:\Windows\System32\ole32.dll 0x00007FFEC2870000 11 | C:\Windows\System32\combase.dll 0x00007FFEC3640000 12 | C:\Windows\System32\ucrtbase.dll 0x00007FFEC0600000 13 | C:\Windows\System32\bcryptPrimitives.dll 0x00007FFEC0BF0000 14 | C:\Windows\System32\GDI32.dll 0x00007FFEC2F00000 15 | C:\Windows\System32\gdi32full.dll 0x00007FFEC0D10000 16 | C:\Windows\System32\USER32.dll 0x00007FFEC29B0000 17 | C:\Windows\System32\win32u.dll 0x00007FFEC0EF0000 18 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\SQLOS.dll 0x00007FFEB62E0000 19 | C:\Windows\SYSTEM32\pdh.dll 0x00007FFEBCAC0000 20 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\sqlmin.dll 0x00007FFEAC0E0000 21 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\sqlTsEs.dll 0x00007FFEA8DD0000 22 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\sqldk.dll 0x00007FFEABC10000 23 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\sqllang.dll 0x00007FFEA9660000 24 | C:\Windows\System32\OLEAUT32.dll 0x00007FFEC25E0000 25 | C:\Windows\System32\msvcp_win.dll 0x00007FFEBFE80000 26 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\opends60.dll 0x00007FFEB2270000 27 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\qds.dll 0x00007FFEA2A80000 28 | C:\Windows\SYSTEM32\MSVCP120.dll 0x00007FFEB66E0000 29 | C:\Windows\SYSTEM32\MSVCR120.dll 0x00007FFEB8400000 30 | C:\Windows\SYSTEM32\WINMM.dll 0x00007FFEBE230000 31 | C:\Windows\SYSTEM32\WINMMBASE.dll 0x00007FFEBE1C0000 32 | C:\Windows\System32\cfgmgr32.dll 0x00007FFEC0AF0000 33 | C:\Windows\System32\CRYPT32.dll 0x00007FFEC0920000 34 | C:\Windows\System32\MSASN1.dll 0x00007FFEBFE20000 35 | C:\Windows\System32\WS2_32.dll 0x00007FFEC2BC0000 36 | C:\Windows\SYSTEM32\Secur32.dll 0x00007FFEBCBC0000 37 | C:\Windows\SYSTEM32\WINHTTP.dll 0x00007FFEBCC80000 38 | C:\Windows\SYSTEM32\bcrypt.dll 0x00007FFEBFD40000 39 | C:\Windows\SYSTEM32\ODBC32.dll 0x00007FFEA2380000 40 | C:\Windows\SYSTEM32\NETUTILS.DLL 0x00007FFEBF530000 41 | C:\Windows\SYSTEM32\DPAPI.dll 0x00007FFEBF300000 42 | C:\Windows\SYSTEM32\SSPICLI.DLL 0x00007FFEBFA60000 43 | C:\Windows\System32\WINTRUST.dll 0x00007FFEC0E90000 44 | C:\Windows\SYSTEM32\USERENV.dll 0x00007FFEBF540000 45 | C:\Windows\System32\profapi.dll 0x00007FFEBFDF0000 46 | C:\Windows\SYSTEM32\AUTHZ.dll 0x00007FFEBF060000 47 | C:\Windows\SYSTEM32\XmlLite.dll 0x00007FFEBC940000 48 | C:\Windows\SYSTEM32\dhcpcsvc.DLL 0x00007FFEBC0A0000 49 | C:\Windows\System32\NSI.dll 0x00007FFEC3970000 50 | C:\Windows\SYSTEM32\LOGONCLI.DLL 0x00007FFEBC330000 51 | C:\Windows\SYSTEM32\SAMCLI.DLL 0x00007FFEBD820000 52 | C:\Windows\System32\psapi.dll 0x00007FFEC24C0000 53 | C:\Windows\System32\kernel.appcore.dll 0x00007FFEBFE10000 54 | C:\Program Files\Microsoft SQL Server\130\Shared\instapi130.dll 0x00007FFEA1B10000 55 | C:\Windows\SYSTEM32\CRYPTSP.dll 0x00007FFEBF860000 56 | C:\Windows\system32\rsaenh.dll 0x00007FFEBF2C0000 57 | C:\Windows\SYSTEM32\CRYPTBASE.dll 0x00007FFEBF880000 58 | C:\Windows\System32\imagehlp.dll 0x00007FFEC2CE0000 59 | C:\Windows\SYSTEM32\gpapi.dll 0x00007FFEBEDF0000 60 | C:\Windows\SYSTEM32\wkscli.dll 0x00007FFEBD670000 61 | C:\Windows\SYSTEM32\cscapi.dll 0x00007FFEB5870000 62 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\Resources\1033\sqlevn70.rll 0x000002B8A7AE0000 63 | C:\Windows\system32\CLUSAPI.DLL 0x00007FFEB6590000 64 | C:\Windows\SYSTEM32\DNSAPI.dll 0x00007FFEBF480000 65 | C:\Windows\SYSTEM32\IPHLPAPI.DLL 0x00007FFEBF440000 66 | C:\Windows\system32\RESUTILS.DLL 0x00007FFEB6670000 67 | C:\Windows\SYSTEM32\VERSION.dll 0x00007FFEB8D40000 68 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\hkruntime.dll 0x00007FFE9B380000 69 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\hkcompile.dll 0x00007FFE9B230000 70 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\hkengine.dll 0x00007FFE9ACC0000 71 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\dbghelp.dll 0x0000000063E90000 72 | C:\Windows\System32\SHLWAPI.dll 0x00007FFEC3910000 73 | C:\Windows\system32\msv1_0.DLL 0x00007FFEBF650000 74 | C:\Windows\SYSTEM32\NtlmShared.dll 0x00007FFEBF640000 75 | C:\Windows\SYSTEM32\cryptdll.dll 0x00007FFEBF720000 76 | C:\Windows\system32\kerberos.DLL 0x00007FFEBF770000 77 | C:\Windows\system32\schannel.DLL 0x00007FFEBF200000 78 | C:\Windows\SYSTEM32\MSCOREE.DLL 0x00007FFEB79B0000 79 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll 0x00007FFEB8500000 80 | C:\Windows\SYSTEM32\SqlServerSpatial130.dll 0x00007FFE975B0000 81 | C:\Windows\system32\security.dll 0x000004BFAD890000 82 | C:\Windows\System32\clbcatq.dll 0x00007FFEC2B20000 83 | C:\Windows\system32\sqlncli11.dll 0x00007FFE94B60000 84 | C:\Windows\system32\MSVCR100.dll 0x0000000063C10000 85 | C:\Windows\System32\COMDLG32.dll 0x00007FFEC34D0000 86 | C:\Windows\System32\shcore.dll 0x00007FFEC0C60000 87 | C:\Windows\System32\SHELL32.dll 0x00007FFEC0FB0000 88 | C:\Windows\System32\windows.storage.dll 0x00007FFEBFF20000 89 | C:\Windows\System32\powrprof.dll 0x00007FFEBFE30000 90 | C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.14393.447_none_0d5aa7fbb6d35646\COMCTL32.dll 0x00007FFE9C290000 91 | C:\Windows\system32\1033\SQLNCLIR11.RLL 0x000004BFAD940000 92 | C:\Windows\SYSTEM32\netbios.dll 0x00007FFE9C8A0000 93 | C:\Program Files\Microsoft SQL Server\130\Shared\sqlnclirda11.dll 0x00000000638B0000 94 | C:\Program Files\Microsoft SQL Server\130\Shared\1033\SQLNCLIRDAR11.RLL 0x000004C02F5A0000 95 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 0x00007FFEB5900000 96 | C:\Windows\SYSTEM32\MSVCR120_CLR0400.dll 0x00007FFEB5580000 97 | C:\Windows\system32\netfxperf.dll 0x00007FFE9C1B0000 98 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\perfcounter.dll 0x00007FFE9CA20000 99 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CorperfmonExt.dll 0x00007FFE9C180000 100 | C:\Windows\SYSTEM32\WTSAPI32.dll 0x00007FFEBD800000 101 | C:\Windows\SYSTEM32\DTSPipelinePerf140.dll 0x00007FFE9C170000 102 | C:\Windows\system32\esentprf.dll 0x00007FFE99C80000 103 | C:\Windows\system32\msdtcuiu.DLL 0x00007FFE99C20000 104 | C:\Windows\system32\ATL.DLL 0x00007FFEBAB40000 105 | C:\Windows\system32\MSDTCPRX.dll 0x00007FFE99B40000 106 | C:\Windows\system32\MTXCLU.DLL 0x00007FFE972A0000 107 | C:\Windows\system32\ktmw32.dll 0x00007FFE9C890000 108 | C:\Windows\SYSTEM32\ntmarta.dll 0x00007FFEBEB20000 109 | C:\Windows\system32\msscntrs.dll 0x00007FFE99130000 110 | C:\Windows\SYSTEM32\perf-MSSQL$SQL2016-sqlctr13.1.4001.0.dll 0x00007FFE96520000 111 | C:\Windows\SYSTEM32\perf-MSSQLSERVER-sqlctr14.0.1000.169.dll 0x00007FFE964C0000 112 | C:\Program Files\Microsoft SQL Server\140\Shared\instapi140.dll 0x00007FFEA0890000 113 | C:\Program Files\Microsoft SQL Server\MSAS14.MSSQLSERVER\OLAP\bin\Counters\MSMDCTR.DLL 0x00007FFE9C160000 114 | C:\Windows\System32\perfdisk.dll 0x00007FFE9CA70000 115 | C:\Windows\System32\WMICLNT.dll 0x00007FFEBBCD0000 116 | C:\Windows\System32\perfnet.dll 0x00007FFE9C9E0000 117 | C:\Windows\SYSTEM32\BROWCLI.Dll 0x00007FFE9C9C0000 118 | C:\Windows\System32\perfos.dll 0x00007FFE9CA80000 119 | C:\Windows\System32\perfproc.dll 0x00007FFE9C8B0000 120 | C:\Windows\System32\rasctrs.dll 0x00007FFE99B30000 121 | C:\Windows\SYSTEM32\rasman.dll 0x00007FFE9F590000 122 | C:\Windows\System32\winspool.drv 0x00007FFEB6500000 123 | C:\Windows\SYSTEM32\perf-MSSQL13.SQL2016-sqlagtctr.dll 0x00007FFE964A0000 124 | C:\Windows\assembly\NativeImages_v4.0.30319_64\mscorlib\6b278bb41b219b5d3ea584606329e448\mscorlib.ni.dll 0x00007FFEB2A90000 125 | C:\Windows\SYSTEM32\perf-MSSQL14.MSSQLSERVER-sqlagtctr.dll 0x00007FFE96480000 126 | C:\Windows\System32\tapiperf.dll 0x00007FFE99120000 127 | C:\Windows\System32\Perfctrs.dll 0x00007FFE96460000 128 | C:\Windows\System32\perfts.dll 0x00007FFE97290000 129 | C:\Windows\System32\UTILDLL.dll 0x00007FFE96440000 130 | C:\Windows\System32\WINSTA.dll 0x00007FFEBFCD0000 131 | C:\Windows\System32\SETUPAPI.dll 0x00007FFEC30A0000 132 | C:\Windows\System32\srvcli.dll 0x00007FFEBC910000 133 | C:\Windows\system32\usbperf.dll 0x00007FFE96430000 134 | C:\Windows\system32\tquery.dll 0x00007FFE94810000 135 | C:\Windows\System32\msxml3.dll 0x00007FFE95C90000 136 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll 0x00007FFEB0A80000 137 | C:\Windows\system32\ualapi.dll 0x00007FFEB9130000 138 | C:\Windows\SYSTEM32\ESENT.dll 0x00007FFEB8A30000 139 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\BatchParser.dll 0x00007FFE96380000 140 | C:\Windows\SYSTEM32\ncrypt.dll 0x00007FFEBF940000 141 | C:\Windows\SYSTEM32\NTASN1.dll 0x00007FFEBF900000 142 | C:\Windows\SYSTEM32\mskeyprotect.dll 0x00007FFEA0640000 143 | C:\Windows\system32\mswsock.dll 0x00007FFEBF6C0000 144 | C:\Windows\system32\ntdsapi.dll 0x00007FFE96320000 145 | C:\Windows\SYSTEM32\DSPARSE.DLL 0x00007FFEBB0D0000 146 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\DATA\xtp\5\xtp_t_5_565577053_185276299297186_1.dll 0x00007FFE962F0000 147 | C:\Windows\system32\ncryptsslp.dll 0x00007FFEA0750000 148 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\xpsqlbot.dll 0x00007FFEBAED0000 149 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\xpstar.dll 0x00007FFE8DEA0000 150 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\SQLSCM.dll 0x00007FFEB6A50000 151 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\Resources\1033\xpstar.rll 0x000004C63C160000 152 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\xplog70.dll 0x00007FFE88760000 153 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\Resources\1033\xplog70.RLL 0x000004C63C1A0000 154 | C:\Windows\SYSTEM32\DSROLE.dll 0x00007FFEBB1C0000 155 | C:\Windows\SYSTEM32\SAMLIB.dll 0x00007FFEBB2A0000 156 | C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\DATA\xtp\5\xtp_p_5_597577167_185276299297639_1.dll 0x00007FFEBAA70000 -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/extraprocs.sql: -------------------------------------------------------------------------------- 1 | use lockhashrepro 2 | go 3 | create or ALTER procedure [dbo].[interop_1] as begin exec dbo.native_1 end 4 | GO 5 | CREATE OR ALTER procedure [dbo].[native_1] 6 | with native_compilation, schemabinding, execute as owner 7 | as 8 | begin atomic 9 | with (transaction isolation level=snapshot, language=N'us_english') 10 | 11 | declare @i bigint 12 | 13 | insert dbo.memopt default values 14 | select @i = scope_identity() 15 | 16 | delete dbo.memopt where id = @i 17 | 18 | end 19 | GO 20 | GRANT EXECUTE ON interop_1 to nonadmin; GRANT EXECUTE ON native_1 to nonadmin; 21 | GO 22 | 23 | create or ALTER procedure [dbo].[interop_2] as begin exec dbo.native_2 end 24 | GO 25 | CREATE OR ALTER procedure [dbo].[native_2] 26 | with native_compilation, schemabinding, execute as owner 27 | as 28 | begin atomic 29 | with (transaction isolation level=snapshot, language=N'us_english') 30 | 31 | declare @i bigint 32 | 33 | insert dbo.memopt default values 34 | select @i = scope_identity() 35 | 36 | delete dbo.memopt where id = @i 37 | 38 | end 39 | GO 40 | GRANT EXECUTE ON interop_2 to nonadmin; GRANT EXECUTE ON native_2 to nonadmin; 41 | GO 42 | 43 | create or ALTER procedure [dbo].[interop_3] as begin exec dbo.native_3 end 44 | GO 45 | CREATE OR ALTER procedure [dbo].[native_3] 46 | with native_compilation, schemabinding, execute as owner 47 | as 48 | begin atomic 49 | with (transaction isolation level=snapshot, language=N'us_english') 50 | 51 | declare @i bigint 52 | 53 | insert dbo.memopt default values 54 | select @i = scope_identity() 55 | 56 | delete dbo.memopt where id = @i 57 | 58 | end 59 | GO 60 | GRANT EXECUTE ON interop_3 to nonadmin; GRANT EXECUTE ON native_3 to nonadmin; 61 | GO 62 | 63 | create or ALTER procedure [dbo].[interop_4] as begin exec dbo.native_4 end 64 | GO 65 | CREATE OR ALTER procedure [dbo].[native_4] 66 | with native_compilation, schemabinding, execute as owner 67 | as 68 | begin atomic 69 | with (transaction isolation level=snapshot, language=N'us_english') 70 | 71 | declare @i bigint 72 | 73 | insert dbo.memopt default values 74 | select @i = scope_identity() 75 | 76 | delete dbo.memopt where id = @i 77 | 78 | end 79 | GO 80 | GRANT EXECUTE ON interop_4 to nonadmin; GRANT EXECUTE ON native_4 to nonadmin; 81 | GO 82 | 83 | create or ALTER procedure [dbo].[interop_5] as begin exec dbo.native_5 end 84 | GO 85 | CREATE OR ALTER procedure [dbo].[native_5] 86 | with native_compilation, schemabinding, execute as owner 87 | as 88 | begin atomic 89 | with (transaction isolation level=snapshot, language=N'us_english') 90 | 91 | declare @i bigint 92 | 93 | insert dbo.memopt default values 94 | select @i = scope_identity() 95 | 96 | delete dbo.memopt where id = @i 97 | 98 | end 99 | GO 100 | GRANT EXECUTE ON interop_5 to nonadmin; GRANT EXECUTE ON native_5 to nonadmin; 101 | GO 102 | 103 | create or ALTER procedure [dbo].[interop_6] as begin exec dbo.native_6 end 104 | GO 105 | CREATE OR ALTER procedure [dbo].[native_6] 106 | with native_compilation, schemabinding, execute as owner 107 | as 108 | begin atomic 109 | with (transaction isolation level=snapshot, language=N'us_english') 110 | 111 | declare @i bigint 112 | 113 | insert dbo.memopt default values 114 | select @i = scope_identity() 115 | 116 | delete dbo.memopt where id = @i 117 | 118 | end 119 | GO 120 | GRANT EXECUTE ON interop_6 to nonadmin; GRANT EXECUTE ON native_6 to nonadmin; 121 | GO 122 | 123 | create or ALTER procedure [dbo].[interop_7] as begin exec dbo.native_7 end 124 | GO 125 | CREATE OR ALTER procedure [dbo].[native_7] 126 | with native_compilation, schemabinding, execute as owner 127 | as 128 | begin atomic 129 | with (transaction isolation level=snapshot, language=N'us_english') 130 | 131 | declare @i bigint 132 | 133 | insert dbo.memopt default values 134 | select @i = scope_identity() 135 | 136 | delete dbo.memopt where id = @i 137 | 138 | end 139 | GO 140 | GRANT EXECUTE ON interop_7 to nonadmin; GRANT EXECUTE ON native_7 to nonadmin; 141 | GO 142 | 143 | create or ALTER procedure [dbo].[interop_8] as begin exec dbo.native_8 end 144 | GO 145 | CREATE OR ALTER procedure [dbo].[native_8] 146 | with native_compilation, schemabinding, execute as owner 147 | as 148 | begin atomic 149 | with (transaction isolation level=snapshot, language=N'us_english') 150 | 151 | declare @i bigint 152 | 153 | insert dbo.memopt default values 154 | select @i = scope_identity() 155 | 156 | delete dbo.memopt where id = @i 157 | 158 | end 159 | GO 160 | GRANT EXECUTE ON interop_8 to nonadmin; GRANT EXECUTE ON native_8 to nonadmin; 161 | GO 162 | 163 | create or ALTER procedure [dbo].[interop_9] as begin exec dbo.native_9 end 164 | GO 165 | CREATE OR ALTER procedure [dbo].[native_9] 166 | with native_compilation, schemabinding, execute as owner 167 | as 168 | begin atomic 169 | with (transaction isolation level=snapshot, language=N'us_english') 170 | 171 | declare @i bigint 172 | 173 | insert dbo.memopt default values 174 | select @i = scope_identity() 175 | 176 | delete dbo.memopt where id = @i 177 | 178 | end 179 | GO 180 | GRANT EXECUTE ON interop_9 to nonadmin; GRANT EXECUTE ON native_9 to nonadmin; 181 | GO 182 | 183 | create or ALTER procedure [dbo].[interop_10] as begin exec dbo.native_10 end 184 | GO 185 | CREATE OR ALTER procedure [dbo].[native_10] 186 | with native_compilation, schemabinding, execute as owner 187 | as 188 | begin atomic 189 | with (transaction isolation level=snapshot, language=N'us_english') 190 | 191 | declare @i bigint 192 | 193 | insert dbo.memopt default values 194 | select @i = scope_identity() 195 | 196 | delete dbo.memopt where id = @i 197 | 198 | end 199 | GO 200 | GRANT EXECUTE ON interop_10 to nonadmin; GRANT EXECUTE ON native_10 to nonadmin; 201 | GO 202 | 203 | create or ALTER procedure [dbo].[interop_11] as begin exec dbo.native_11 end 204 | GO 205 | CREATE OR ALTER procedure [dbo].[native_11] 206 | with native_compilation, schemabinding, execute as owner 207 | as 208 | begin atomic 209 | with (transaction isolation level=snapshot, language=N'us_english') 210 | 211 | declare @i bigint 212 | 213 | insert dbo.memopt default values 214 | select @i = scope_identity() 215 | 216 | delete dbo.memopt where id = @i 217 | 218 | end 219 | GO 220 | GRANT EXECUTE ON interop_11 to nonadmin; GRANT EXECUTE ON native_11 to nonadmin; 221 | GO 222 | 223 | create or ALTER procedure [dbo].[interop_12] as begin exec dbo.native_12 end 224 | GO 225 | CREATE OR ALTER procedure [dbo].[native_12] 226 | with native_compilation, schemabinding, execute as owner 227 | as 228 | begin atomic 229 | with (transaction isolation level=snapshot, language=N'us_english') 230 | 231 | declare @i bigint 232 | 233 | insert dbo.memopt default values 234 | select @i = scope_identity() 235 | 236 | delete dbo.memopt where id = @i 237 | 238 | end 239 | GO 240 | GRANT EXECUTE ON interop_12 to nonadmin; GRANT EXECUTE ON native_12 to nonadmin; 241 | GO 242 | 243 | create or ALTER procedure [dbo].[interop_13] as begin exec dbo.native_13 end 244 | GO 245 | CREATE OR ALTER procedure [dbo].[native_13] 246 | with native_compilation, schemabinding, execute as owner 247 | as 248 | begin atomic 249 | with (transaction isolation level=snapshot, language=N'us_english') 250 | 251 | declare @i bigint 252 | 253 | insert dbo.memopt default values 254 | select @i = scope_identity() 255 | 256 | delete dbo.memopt where id = @i 257 | 258 | end 259 | GO 260 | GRANT EXECUTE ON interop_13 to nonadmin; GRANT EXECUTE ON native_13 to nonadmin; 261 | GO 262 | 263 | create or ALTER procedure [dbo].[interop_14] as begin exec dbo.native_14 end 264 | GO 265 | CREATE OR ALTER procedure [dbo].[native_14] 266 | with native_compilation, schemabinding, execute as owner 267 | as 268 | begin atomic 269 | with (transaction isolation level=snapshot, language=N'us_english') 270 | 271 | declare @i bigint 272 | 273 | insert dbo.memopt default values 274 | select @i = scope_identity() 275 | 276 | delete dbo.memopt where id = @i 277 | 278 | end 279 | GO 280 | GRANT EXECUTE ON interop_14 to nonadmin; GRANT EXECUTE ON native_14 to nonadmin; 281 | GO 282 | 283 | create or ALTER procedure [dbo].[interop_15] as begin exec dbo.native_15 end 284 | GO 285 | CREATE OR ALTER procedure [dbo].[native_15] 286 | with native_compilation, schemabinding, execute as owner 287 | as 288 | begin atomic 289 | with (transaction isolation level=snapshot, language=N'us_english') 290 | 291 | declare @i bigint 292 | 293 | insert dbo.memopt default values 294 | select @i = scope_identity() 295 | 296 | delete dbo.memopt where id = @i 297 | 298 | end 299 | GO 300 | GRANT EXECUTE ON interop_15 to nonadmin; GRANT EXECUTE ON native_15 to nonadmin; 301 | GO 302 | 303 | create or ALTER procedure [dbo].[interop_16] as begin exec dbo.native_16 end 304 | GO 305 | CREATE OR ALTER procedure [dbo].[native_16] 306 | with native_compilation, schemabinding, execute as owner 307 | as 308 | begin atomic 309 | with (transaction isolation level=snapshot, language=N'us_english') 310 | 311 | declare @i bigint 312 | 313 | insert dbo.memopt default values 314 | select @i = scope_identity() 315 | 316 | delete dbo.memopt where id = @i 317 | 318 | end 319 | GO 320 | GRANT EXECUTE ON interop_16 to nonadmin; GRANT EXECUTE ON native_16 to nonadmin; 321 | GO 322 | 323 | create or ALTER procedure [dbo].[interop_17] as begin exec dbo.native_17 end 324 | GO 325 | CREATE OR ALTER procedure [dbo].[native_17] 326 | with native_compilation, schemabinding, execute as owner 327 | as 328 | begin atomic 329 | with (transaction isolation level=snapshot, language=N'us_english') 330 | 331 | declare @i bigint 332 | 333 | insert dbo.memopt default values 334 | select @i = scope_identity() 335 | 336 | delete dbo.memopt where id = @i 337 | 338 | end 339 | GO 340 | GRANT EXECUTE ON interop_17 to nonadmin; GRANT EXECUTE ON native_17 to nonadmin; 341 | GO 342 | 343 | create or ALTER procedure [dbo].[interop_18] as begin exec dbo.native_18 end 344 | GO 345 | CREATE OR ALTER procedure [dbo].[native_18] 346 | with native_compilation, schemabinding, execute as owner 347 | as 348 | begin atomic 349 | with (transaction isolation level=snapshot, language=N'us_english') 350 | 351 | declare @i bigint 352 | 353 | insert dbo.memopt default values 354 | select @i = scope_identity() 355 | 356 | delete dbo.memopt where id = @i 357 | 358 | end 359 | GO 360 | GRANT EXECUTE ON interop_18 to nonadmin; GRANT EXECUTE ON native_18 to nonadmin; 361 | GO 362 | 363 | create or ALTER procedure [dbo].[interop_19] as begin exec dbo.native_19 end 364 | GO 365 | CREATE OR ALTER procedure [dbo].[native_19] 366 | with native_compilation, schemabinding, execute as owner 367 | as 368 | begin atomic 369 | with (transaction isolation level=snapshot, language=N'us_english') 370 | 371 | declare @i bigint 372 | 373 | insert dbo.memopt default values 374 | select @i = scope_identity() 375 | 376 | delete dbo.memopt where id = @i 377 | 378 | end 379 | GO 380 | GRANT EXECUTE ON interop_19 to nonadmin; GRANT EXECUTE ON native_19 to nonadmin; 381 | GO 382 | 383 | create or ALTER procedure [dbo].[interop_20] as begin exec dbo.native_20 end 384 | GO 385 | CREATE OR ALTER procedure [dbo].[native_20] 386 | with native_compilation, schemabinding, execute as owner 387 | as 388 | begin atomic 389 | with (transaction isolation level=snapshot, language=N'us_english') 390 | 391 | declare @i bigint 392 | 393 | insert dbo.memopt default values 394 | select @i = scope_identity() 395 | 396 | delete dbo.memopt where id = @i 397 | 398 | end 399 | GO 400 | GRANT EXECUTE ON interop_20 to nonadmin; GRANT EXECUTE ON native_20 to nonadmin; 401 | GO 402 | 403 | create or ALTER procedure [dbo].[interop_21] as begin exec dbo.native_21 end 404 | GO 405 | CREATE OR ALTER procedure [dbo].[native_21] 406 | with native_compilation, schemabinding, execute as owner 407 | as 408 | begin atomic 409 | with (transaction isolation level=snapshot, language=N'us_english') 410 | 411 | declare @i bigint 412 | 413 | insert dbo.memopt default values 414 | select @i = scope_identity() 415 | 416 | delete dbo.memopt where id = @i 417 | 418 | end 419 | GO 420 | GRANT EXECUTE ON interop_21 to nonadmin; GRANT EXECUTE ON native_21 to nonadmin; 421 | GO 422 | 423 | create or ALTER procedure [dbo].[interop_22] as begin exec dbo.native_22 end 424 | GO 425 | CREATE OR ALTER procedure [dbo].[native_22] 426 | with native_compilation, schemabinding, execute as owner 427 | as 428 | begin atomic 429 | with (transaction isolation level=snapshot, language=N'us_english') 430 | 431 | declare @i bigint 432 | 433 | insert dbo.memopt default values 434 | select @i = scope_identity() 435 | 436 | delete dbo.memopt where id = @i 437 | 438 | end 439 | GO 440 | GRANT EXECUTE ON interop_22 to nonadmin; GRANT EXECUTE ON native_22 to nonadmin; 441 | GO 442 | 443 | create or ALTER procedure [dbo].[interop_23] as begin exec dbo.native_23 end 444 | GO 445 | CREATE OR ALTER procedure [dbo].[native_23] 446 | with native_compilation, schemabinding, execute as owner 447 | as 448 | begin atomic 449 | with (transaction isolation level=snapshot, language=N'us_english') 450 | 451 | declare @i bigint 452 | 453 | insert dbo.memopt default values 454 | select @i = scope_identity() 455 | 456 | delete dbo.memopt where id = @i 457 | 458 | end 459 | GO 460 | GRANT EXECUTE ON interop_23 to nonadmin; GRANT EXECUTE ON native_23 to nonadmin; 461 | GO 462 | 463 | create or ALTER procedure [dbo].[interop_24] as begin exec dbo.native_24 end 464 | GO 465 | CREATE OR ALTER procedure [dbo].[native_24] 466 | with native_compilation, schemabinding, execute as owner 467 | as 468 | begin atomic 469 | with (transaction isolation level=snapshot, language=N'us_english') 470 | 471 | declare @i bigint 472 | 473 | insert dbo.memopt default values 474 | select @i = scope_identity() 475 | 476 | delete dbo.memopt where id = @i 477 | 478 | end 479 | GO 480 | GRANT EXECUTE ON interop_24 to nonadmin; GRANT EXECUTE ON native_24 to nonadmin; 481 | GO 482 | 483 | create or ALTER procedure [dbo].[interop_25] as begin exec dbo.native_25 end 484 | GO 485 | CREATE OR ALTER procedure [dbo].[native_25] 486 | with native_compilation, schemabinding, execute as owner 487 | as 488 | begin atomic 489 | with (transaction isolation level=snapshot, language=N'us_english') 490 | 491 | declare @i bigint 492 | 493 | insert dbo.memopt default values 494 | select @i = scope_identity() 495 | 496 | delete dbo.memopt where id = @i 497 | 498 | end 499 | GO 500 | GRANT EXECUTE ON interop_25 to nonadmin; GRANT EXECUTE ON native_25 to nonadmin; 501 | GO 502 | 503 | create or ALTER procedure [dbo].[interop_26] as begin exec dbo.native_26 end 504 | GO 505 | CREATE OR ALTER procedure [dbo].[native_26] 506 | with native_compilation, schemabinding, execute as owner 507 | as 508 | begin atomic 509 | with (transaction isolation level=snapshot, language=N'us_english') 510 | 511 | declare @i bigint 512 | 513 | insert dbo.memopt default values 514 | select @i = scope_identity() 515 | 516 | delete dbo.memopt where id = @i 517 | 518 | end 519 | GO 520 | GRANT EXECUTE ON interop_26 to nonadmin; GRANT EXECUTE ON native_26 to nonadmin; 521 | GO 522 | 523 | create or ALTER procedure [dbo].[interop_27] as begin exec dbo.native_27 end 524 | GO 525 | CREATE OR ALTER procedure [dbo].[native_27] 526 | with native_compilation, schemabinding, execute as owner 527 | as 528 | begin atomic 529 | with (transaction isolation level=snapshot, language=N'us_english') 530 | 531 | declare @i bigint 532 | 533 | insert dbo.memopt default values 534 | select @i = scope_identity() 535 | 536 | delete dbo.memopt where id = @i 537 | 538 | end 539 | GO 540 | GRANT EXECUTE ON interop_27 to nonadmin; GRANT EXECUTE ON native_27 to nonadmin; 541 | GO 542 | 543 | create or ALTER procedure [dbo].[interop_28] as begin exec dbo.native_28 end 544 | GO 545 | CREATE OR ALTER procedure [dbo].[native_28] 546 | with native_compilation, schemabinding, execute as owner 547 | as 548 | begin atomic 549 | with (transaction isolation level=snapshot, language=N'us_english') 550 | 551 | declare @i bigint 552 | 553 | insert dbo.memopt default values 554 | select @i = scope_identity() 555 | 556 | delete dbo.memopt where id = @i 557 | 558 | end 559 | GO 560 | GRANT EXECUTE ON interop_28 to nonadmin; GRANT EXECUTE ON native_28 to nonadmin; 561 | GO 562 | 563 | create or ALTER procedure [dbo].[interop_29] as begin exec dbo.native_29 end 564 | GO 565 | CREATE OR ALTER procedure [dbo].[native_29] 566 | with native_compilation, schemabinding, execute as owner 567 | as 568 | begin atomic 569 | with (transaction isolation level=snapshot, language=N'us_english') 570 | 571 | declare @i bigint 572 | 573 | insert dbo.memopt default values 574 | select @i = scope_identity() 575 | 576 | delete dbo.memopt where id = @i 577 | 578 | end 579 | GO 580 | GRANT EXECUTE ON interop_29 to nonadmin; GRANT EXECUTE ON native_29 to nonadmin; 581 | GO 582 | 583 | create or ALTER procedure [dbo].[interop_30] as begin exec dbo.native_30 end 584 | GO 585 | CREATE OR ALTER procedure [dbo].[native_30] 586 | with native_compilation, schemabinding, execute as owner 587 | as 588 | begin atomic 589 | with (transaction isolation level=snapshot, language=N'us_english') 590 | 591 | declare @i bigint 592 | 593 | insert dbo.memopt default values 594 | select @i = scope_identity() 595 | 596 | delete dbo.memopt where id = @i 597 | 598 | end 599 | GO 600 | GRANT EXECUTE ON interop_30 to nonadmin; GRANT EXECUTE ON native_30 to nonadmin; 601 | GO 602 | 603 | create or ALTER procedure [dbo].[interop_31] as begin exec dbo.native_31 end 604 | GO 605 | CREATE OR ALTER procedure [dbo].[native_31] 606 | with native_compilation, schemabinding, execute as owner 607 | as 608 | begin atomic 609 | with (transaction isolation level=snapshot, language=N'us_english') 610 | 611 | declare @i bigint 612 | 613 | insert dbo.memopt default values 614 | select @i = scope_identity() 615 | 616 | delete dbo.memopt where id = @i 617 | 618 | end 619 | GO 620 | GRANT EXECUTE ON interop_31 to nonadmin; GRANT EXECUTE ON native_31 to nonadmin; 621 | GO 622 | 623 | create or ALTER procedure [dbo].[interop_32] as begin exec dbo.native_32 end 624 | GO 625 | CREATE OR ALTER procedure [dbo].[native_32] 626 | with native_compilation, schemabinding, execute as owner 627 | as 628 | begin atomic 629 | with (transaction isolation level=snapshot, language=N'us_english') 630 | 631 | declare @i bigint 632 | 633 | insert dbo.memopt default values 634 | select @i = scope_identity() 635 | 636 | delete dbo.memopt where id = @i 637 | 638 | end 639 | GO 640 | GRANT EXECUTE ON interop_32 to nonadmin; GRANT EXECUTE ON native_32 to nonadmin; 641 | GO 642 | 643 | create or ALTER procedure [dbo].[interop_33] as begin exec dbo.native_33 end 644 | GO 645 | CREATE OR ALTER procedure [dbo].[native_33] 646 | with native_compilation, schemabinding, execute as owner 647 | as 648 | begin atomic 649 | with (transaction isolation level=snapshot, language=N'us_english') 650 | 651 | declare @i bigint 652 | 653 | insert dbo.memopt default values 654 | select @i = scope_identity() 655 | 656 | delete dbo.memopt where id = @i 657 | 658 | end 659 | GO 660 | GRANT EXECUTE ON interop_33 to nonadmin; GRANT EXECUTE ON native_33 to nonadmin; 661 | GO 662 | 663 | create or ALTER procedure [dbo].[interop_34] as begin exec dbo.native_34 end 664 | GO 665 | CREATE OR ALTER procedure [dbo].[native_34] 666 | with native_compilation, schemabinding, execute as owner 667 | as 668 | begin atomic 669 | with (transaction isolation level=snapshot, language=N'us_english') 670 | 671 | declare @i bigint 672 | 673 | insert dbo.memopt default values 674 | select @i = scope_identity() 675 | 676 | delete dbo.memopt where id = @i 677 | 678 | end 679 | GO 680 | GRANT EXECUTE ON interop_34 to nonadmin; GRANT EXECUTE ON native_34 to nonadmin; 681 | GO 682 | 683 | create or ALTER procedure [dbo].[interop_35] as begin exec dbo.native_35 end 684 | GO 685 | CREATE OR ALTER procedure [dbo].[native_35] 686 | with native_compilation, schemabinding, execute as owner 687 | as 688 | begin atomic 689 | with (transaction isolation level=snapshot, language=N'us_english') 690 | 691 | declare @i bigint 692 | 693 | insert dbo.memopt default values 694 | select @i = scope_identity() 695 | 696 | delete dbo.memopt where id = @i 697 | 698 | end 699 | GO 700 | GRANT EXECUTE ON interop_35 to nonadmin; GRANT EXECUTE ON native_35 to nonadmin; 701 | GO 702 | 703 | create or ALTER procedure [dbo].[interop_36] as begin exec dbo.native_36 end 704 | GO 705 | CREATE OR ALTER procedure [dbo].[native_36] 706 | with native_compilation, schemabinding, execute as owner 707 | as 708 | begin atomic 709 | with (transaction isolation level=snapshot, language=N'us_english') 710 | 711 | declare @i bigint 712 | 713 | insert dbo.memopt default values 714 | select @i = scope_identity() 715 | 716 | delete dbo.memopt where id = @i 717 | 718 | end 719 | GO 720 | GRANT EXECUTE ON interop_36 to nonadmin; GRANT EXECUTE ON native_36 to nonadmin; 721 | GO 722 | 723 | create or ALTER procedure [dbo].[interop_37] as begin exec dbo.native_37 end 724 | GO 725 | CREATE OR ALTER procedure [dbo].[native_37] 726 | with native_compilation, schemabinding, execute as owner 727 | as 728 | begin atomic 729 | with (transaction isolation level=snapshot, language=N'us_english') 730 | 731 | declare @i bigint 732 | 733 | insert dbo.memopt default values 734 | select @i = scope_identity() 735 | 736 | delete dbo.memopt where id = @i 737 | 738 | end 739 | GO 740 | GRANT EXECUTE ON interop_37 to nonadmin; GRANT EXECUTE ON native_37 to nonadmin; 741 | GO 742 | 743 | create or ALTER procedure [dbo].[interop_38] as begin exec dbo.native_38 end 744 | GO 745 | CREATE OR ALTER procedure [dbo].[native_38] 746 | with native_compilation, schemabinding, execute as owner 747 | as 748 | begin atomic 749 | with (transaction isolation level=snapshot, language=N'us_english') 750 | 751 | declare @i bigint 752 | 753 | insert dbo.memopt default values 754 | select @i = scope_identity() 755 | 756 | delete dbo.memopt where id = @i 757 | 758 | end 759 | GO 760 | GRANT EXECUTE ON interop_38 to nonadmin; GRANT EXECUTE ON native_38 to nonadmin; 761 | GO 762 | 763 | create or ALTER procedure [dbo].[interop_39] as begin exec dbo.native_39 end 764 | GO 765 | CREATE OR ALTER procedure [dbo].[native_39] 766 | with native_compilation, schemabinding, execute as owner 767 | as 768 | begin atomic 769 | with (transaction isolation level=snapshot, language=N'us_english') 770 | 771 | declare @i bigint 772 | 773 | insert dbo.memopt default values 774 | select @i = scope_identity() 775 | 776 | delete dbo.memopt where id = @i 777 | 778 | end 779 | GO 780 | GRANT EXECUTE ON interop_39 to nonadmin; GRANT EXECUTE ON native_39 to nonadmin; 781 | GO 782 | 783 | create or ALTER procedure [dbo].[interop_40] as begin exec dbo.native_40 end 784 | GO 785 | CREATE OR ALTER procedure [dbo].[native_40] 786 | with native_compilation, schemabinding, execute as owner 787 | as 788 | begin atomic 789 | with (transaction isolation level=snapshot, language=N'us_english') 790 | 791 | declare @i bigint 792 | 793 | insert dbo.memopt default values 794 | select @i = scope_identity() 795 | 796 | delete dbo.memopt where id = @i 797 | 798 | end 799 | GO 800 | GRANT EXECUTE ON interop_40 to nonadmin; GRANT EXECUTE ON native_40 to nonadmin; 801 | GO 802 | 803 | create or ALTER procedure [dbo].[interop_41] as begin exec dbo.native_41 end 804 | GO 805 | CREATE OR ALTER procedure [dbo].[native_41] 806 | with native_compilation, schemabinding, execute as owner 807 | as 808 | begin atomic 809 | with (transaction isolation level=snapshot, language=N'us_english') 810 | 811 | declare @i bigint 812 | 813 | insert dbo.memopt default values 814 | select @i = scope_identity() 815 | 816 | delete dbo.memopt where id = @i 817 | 818 | end 819 | GO 820 | GRANT EXECUTE ON interop_41 to nonadmin; GRANT EXECUTE ON native_41 to nonadmin; 821 | GO 822 | 823 | create or ALTER procedure [dbo].[interop_42] as begin exec dbo.native_42 end 824 | GO 825 | CREATE OR ALTER procedure [dbo].[native_42] 826 | with native_compilation, schemabinding, execute as owner 827 | as 828 | begin atomic 829 | with (transaction isolation level=snapshot, language=N'us_english') 830 | 831 | declare @i bigint 832 | 833 | insert dbo.memopt default values 834 | select @i = scope_identity() 835 | 836 | delete dbo.memopt where id = @i 837 | 838 | end 839 | GO 840 | GRANT EXECUTE ON interop_42 to nonadmin; GRANT EXECUTE ON native_42 to nonadmin; 841 | GO 842 | 843 | create or ALTER procedure [dbo].[interop_43] as begin exec dbo.native_43 end 844 | GO 845 | CREATE OR ALTER procedure [dbo].[native_43] 846 | with native_compilation, schemabinding, execute as owner 847 | as 848 | begin atomic 849 | with (transaction isolation level=snapshot, language=N'us_english') 850 | 851 | declare @i bigint 852 | 853 | insert dbo.memopt default values 854 | select @i = scope_identity() 855 | 856 | delete dbo.memopt where id = @i 857 | 858 | end 859 | GO 860 | GRANT EXECUTE ON interop_43 to nonadmin; GRANT EXECUTE ON native_43 to nonadmin; 861 | GO 862 | 863 | create or ALTER procedure [dbo].[interop_44] as begin exec dbo.native_44 end 864 | GO 865 | CREATE OR ALTER procedure [dbo].[native_44] 866 | with native_compilation, schemabinding, execute as owner 867 | as 868 | begin atomic 869 | with (transaction isolation level=snapshot, language=N'us_english') 870 | 871 | declare @i bigint 872 | 873 | insert dbo.memopt default values 874 | select @i = scope_identity() 875 | 876 | delete dbo.memopt where id = @i 877 | 878 | end 879 | GO 880 | GRANT EXECUTE ON interop_44 to nonadmin; GRANT EXECUTE ON native_44 to nonadmin; 881 | GO 882 | 883 | create or ALTER procedure [dbo].[interop_45] as begin exec dbo.native_45 end 884 | GO 885 | CREATE OR ALTER procedure [dbo].[native_45] 886 | with native_compilation, schemabinding, execute as owner 887 | as 888 | begin atomic 889 | with (transaction isolation level=snapshot, language=N'us_english') 890 | 891 | declare @i bigint 892 | 893 | insert dbo.memopt default values 894 | select @i = scope_identity() 895 | 896 | delete dbo.memopt where id = @i 897 | 898 | end 899 | GO 900 | GRANT EXECUTE ON interop_45 to nonadmin; GRANT EXECUTE ON native_45 to nonadmin; 901 | GO 902 | 903 | create or ALTER procedure [dbo].[interop_46] as begin exec dbo.native_46 end 904 | GO 905 | CREATE OR ALTER procedure [dbo].[native_46] 906 | with native_compilation, schemabinding, execute as owner 907 | as 908 | begin atomic 909 | with (transaction isolation level=snapshot, language=N'us_english') 910 | 911 | declare @i bigint 912 | 913 | insert dbo.memopt default values 914 | select @i = scope_identity() 915 | 916 | delete dbo.memopt where id = @i 917 | 918 | end 919 | GO 920 | GRANT EXECUTE ON interop_46 to nonadmin; GRANT EXECUTE ON native_46 to nonadmin; 921 | GO 922 | 923 | create or ALTER procedure [dbo].[interop_47] as begin exec dbo.native_47 end 924 | GO 925 | CREATE OR ALTER procedure [dbo].[native_47] 926 | with native_compilation, schemabinding, execute as owner 927 | as 928 | begin atomic 929 | with (transaction isolation level=snapshot, language=N'us_english') 930 | 931 | declare @i bigint 932 | 933 | insert dbo.memopt default values 934 | select @i = scope_identity() 935 | 936 | delete dbo.memopt where id = @i 937 | 938 | end 939 | GO 940 | GRANT EXECUTE ON interop_47 to nonadmin; GRANT EXECUTE ON native_47 to nonadmin; 941 | GO 942 | 943 | create or ALTER procedure [dbo].[interop_48] as begin exec dbo.native_48 end 944 | GO 945 | CREATE OR ALTER procedure [dbo].[native_48] 946 | with native_compilation, schemabinding, execute as owner 947 | as 948 | begin atomic 949 | with (transaction isolation level=snapshot, language=N'us_english') 950 | 951 | declare @i bigint 952 | 953 | insert dbo.memopt default values 954 | select @i = scope_identity() 955 | 956 | delete dbo.memopt where id = @i 957 | 958 | end 959 | GO 960 | GRANT EXECUTE ON interop_48 to nonadmin; GRANT EXECUTE ON native_48 to nonadmin; 961 | GO 962 | 963 | create or ALTER procedure [dbo].[interop_49] as begin exec dbo.native_49 end 964 | GO 965 | CREATE OR ALTER procedure [dbo].[native_49] 966 | with native_compilation, schemabinding, execute as owner 967 | as 968 | begin atomic 969 | with (transaction isolation level=snapshot, language=N'us_english') 970 | 971 | declare @i bigint 972 | 973 | insert dbo.memopt default values 974 | select @i = scope_identity() 975 | 976 | delete dbo.memopt where id = @i 977 | 978 | end 979 | GO 980 | GRANT EXECUTE ON interop_49 to nonadmin; GRANT EXECUTE ON native_49 to nonadmin; 981 | GO 982 | 983 | create or ALTER procedure [dbo].[interop_50] as begin exec dbo.native_50 end 984 | GO 985 | CREATE OR ALTER procedure [dbo].[native_50] 986 | with native_compilation, schemabinding, execute as owner 987 | as 988 | begin atomic 989 | with (transaction isolation level=snapshot, language=N'us_english') 990 | 991 | declare @i bigint 992 | 993 | insert dbo.memopt default values 994 | select @i = scope_identity() 995 | 996 | delete dbo.memopt where id = @i 997 | 998 | end 999 | GO 1000 | GRANT EXECUTE ON interop_50 to nonadmin; GRANT EXECUTE ON native_50 to nonadmin; 1001 | GO 1002 | 1003 | create or ALTER procedure [dbo].[interop_51] as begin exec dbo.native_51 end 1004 | GO 1005 | CREATE OR ALTER procedure [dbo].[native_51] 1006 | with native_compilation, schemabinding, execute as owner 1007 | as 1008 | begin atomic 1009 | with (transaction isolation level=snapshot, language=N'us_english') 1010 | 1011 | declare @i bigint 1012 | 1013 | insert dbo.memopt default values 1014 | select @i = scope_identity() 1015 | 1016 | delete dbo.memopt where id = @i 1017 | 1018 | end 1019 | GO 1020 | GRANT EXECUTE ON interop_51 to nonadmin; GRANT EXECUTE ON native_51 to nonadmin; 1021 | GO 1022 | 1023 | create or ALTER procedure [dbo].[interop_52] as begin exec dbo.native_52 end 1024 | GO 1025 | CREATE OR ALTER procedure [dbo].[native_52] 1026 | with native_compilation, schemabinding, execute as owner 1027 | as 1028 | begin atomic 1029 | with (transaction isolation level=snapshot, language=N'us_english') 1030 | 1031 | declare @i bigint 1032 | 1033 | insert dbo.memopt default values 1034 | select @i = scope_identity() 1035 | 1036 | delete dbo.memopt where id = @i 1037 | 1038 | end 1039 | GO 1040 | GRANT EXECUTE ON interop_52 to nonadmin; GRANT EXECUTE ON native_52 to nonadmin; 1041 | GO 1042 | 1043 | create or ALTER procedure [dbo].[interop_53] as begin exec dbo.native_53 end 1044 | GO 1045 | CREATE OR ALTER procedure [dbo].[native_53] 1046 | with native_compilation, schemabinding, execute as owner 1047 | as 1048 | begin atomic 1049 | with (transaction isolation level=snapshot, language=N'us_english') 1050 | 1051 | declare @i bigint 1052 | 1053 | insert dbo.memopt default values 1054 | select @i = scope_identity() 1055 | 1056 | delete dbo.memopt where id = @i 1057 | 1058 | end 1059 | GO 1060 | GRANT EXECUTE ON interop_53 to nonadmin; GRANT EXECUTE ON native_53 to nonadmin; 1061 | GO 1062 | 1063 | create or ALTER procedure [dbo].[interop_54] as begin exec dbo.native_54 end 1064 | GO 1065 | CREATE OR ALTER procedure [dbo].[native_54] 1066 | with native_compilation, schemabinding, execute as owner 1067 | as 1068 | begin atomic 1069 | with (transaction isolation level=snapshot, language=N'us_english') 1070 | 1071 | declare @i bigint 1072 | 1073 | insert dbo.memopt default values 1074 | select @i = scope_identity() 1075 | 1076 | delete dbo.memopt where id = @i 1077 | 1078 | end 1079 | GO 1080 | GRANT EXECUTE ON interop_54 to nonadmin; GRANT EXECUTE ON native_54 to nonadmin; 1081 | GO 1082 | 1083 | create or ALTER procedure [dbo].[interop_55] as begin exec dbo.native_55 end 1084 | GO 1085 | CREATE OR ALTER procedure [dbo].[native_55] 1086 | with native_compilation, schemabinding, execute as owner 1087 | as 1088 | begin atomic 1089 | with (transaction isolation level=snapshot, language=N'us_english') 1090 | 1091 | declare @i bigint 1092 | 1093 | insert dbo.memopt default values 1094 | select @i = scope_identity() 1095 | 1096 | delete dbo.memopt where id = @i 1097 | 1098 | end 1099 | GO 1100 | GRANT EXECUTE ON interop_55 to nonadmin; GRANT EXECUTE ON native_55 to nonadmin; 1101 | GO 1102 | 1103 | create or ALTER procedure [dbo].[interop_56] as begin exec dbo.native_56 end 1104 | GO 1105 | CREATE OR ALTER procedure [dbo].[native_56] 1106 | with native_compilation, schemabinding, execute as owner 1107 | as 1108 | begin atomic 1109 | with (transaction isolation level=snapshot, language=N'us_english') 1110 | 1111 | declare @i bigint 1112 | 1113 | insert dbo.memopt default values 1114 | select @i = scope_identity() 1115 | 1116 | delete dbo.memopt where id = @i 1117 | 1118 | end 1119 | GO 1120 | GRANT EXECUTE ON interop_56 to nonadmin; GRANT EXECUTE ON native_56 to nonadmin; 1121 | GO 1122 | 1123 | create or ALTER procedure [dbo].[interop_57] as begin exec dbo.native_57 end 1124 | GO 1125 | CREATE OR ALTER procedure [dbo].[native_57] 1126 | with native_compilation, schemabinding, execute as owner 1127 | as 1128 | begin atomic 1129 | with (transaction isolation level=snapshot, language=N'us_english') 1130 | 1131 | declare @i bigint 1132 | 1133 | insert dbo.memopt default values 1134 | select @i = scope_identity() 1135 | 1136 | delete dbo.memopt where id = @i 1137 | 1138 | end 1139 | GO 1140 | GRANT EXECUTE ON interop_57 to nonadmin; GRANT EXECUTE ON native_57 to nonadmin; 1141 | GO 1142 | 1143 | create or ALTER procedure [dbo].[interop_58] as begin exec dbo.native_58 end 1144 | GO 1145 | CREATE OR ALTER procedure [dbo].[native_58] 1146 | with native_compilation, schemabinding, execute as owner 1147 | as 1148 | begin atomic 1149 | with (transaction isolation level=snapshot, language=N'us_english') 1150 | 1151 | declare @i bigint 1152 | 1153 | insert dbo.memopt default values 1154 | select @i = scope_identity() 1155 | 1156 | delete dbo.memopt where id = @i 1157 | 1158 | end 1159 | GO 1160 | GRANT EXECUTE ON interop_58 to nonadmin; GRANT EXECUTE ON native_58 to nonadmin; 1161 | GO 1162 | 1163 | create or ALTER procedure [dbo].[interop_59] as begin exec dbo.native_59 end 1164 | GO 1165 | CREATE OR ALTER procedure [dbo].[native_59] 1166 | with native_compilation, schemabinding, execute as owner 1167 | as 1168 | begin atomic 1169 | with (transaction isolation level=snapshot, language=N'us_english') 1170 | 1171 | declare @i bigint 1172 | 1173 | insert dbo.memopt default values 1174 | select @i = scope_identity() 1175 | 1176 | delete dbo.memopt where id = @i 1177 | 1178 | end 1179 | GO 1180 | GRANT EXECUTE ON interop_59 to nonadmin; GRANT EXECUTE ON native_59 to nonadmin; 1181 | GO 1182 | 1183 | create or ALTER procedure [dbo].[interop_60] as begin exec dbo.native_60 end 1184 | GO 1185 | CREATE OR ALTER procedure [dbo].[native_60] 1186 | with native_compilation, schemabinding, execute as owner 1187 | as 1188 | begin atomic 1189 | with (transaction isolation level=snapshot, language=N'us_english') 1190 | 1191 | declare @i bigint 1192 | 1193 | insert dbo.memopt default values 1194 | select @i = scope_identity() 1195 | 1196 | delete dbo.memopt where id = @i 1197 | 1198 | end 1199 | GO 1200 | GRANT EXECUTE ON interop_60 to nonadmin; GRANT EXECUTE ON native_60 to nonadmin; 1201 | GO 1202 | 1203 | create or ALTER procedure [dbo].[interop_61] as begin exec dbo.native_61 end 1204 | GO 1205 | CREATE OR ALTER procedure [dbo].[native_61] 1206 | with native_compilation, schemabinding, execute as owner 1207 | as 1208 | begin atomic 1209 | with (transaction isolation level=snapshot, language=N'us_english') 1210 | 1211 | declare @i bigint 1212 | 1213 | insert dbo.memopt default values 1214 | select @i = scope_identity() 1215 | 1216 | delete dbo.memopt where id = @i 1217 | 1218 | end 1219 | GO 1220 | GRANT EXECUTE ON interop_61 to nonadmin; GRANT EXECUTE ON native_61 to nonadmin; 1221 | GO 1222 | 1223 | create or ALTER procedure [dbo].[interop_62] as begin exec dbo.native_62 end 1224 | GO 1225 | CREATE OR ALTER procedure [dbo].[native_62] 1226 | with native_compilation, schemabinding, execute as owner 1227 | as 1228 | begin atomic 1229 | with (transaction isolation level=snapshot, language=N'us_english') 1230 | 1231 | declare @i bigint 1232 | 1233 | insert dbo.memopt default values 1234 | select @i = scope_identity() 1235 | 1236 | delete dbo.memopt where id = @i 1237 | 1238 | end 1239 | GO 1240 | GRANT EXECUTE ON interop_62 to nonadmin; GRANT EXECUTE ON native_62 to nonadmin; 1241 | GO 1242 | 1243 | create or ALTER procedure [dbo].[interop_63] as begin exec dbo.native_63 end 1244 | GO 1245 | CREATE OR ALTER procedure [dbo].[native_63] 1246 | with native_compilation, schemabinding, execute as owner 1247 | as 1248 | begin atomic 1249 | with (transaction isolation level=snapshot, language=N'us_english') 1250 | 1251 | declare @i bigint 1252 | 1253 | insert dbo.memopt default values 1254 | select @i = scope_identity() 1255 | 1256 | delete dbo.memopt where id = @i 1257 | 1258 | end 1259 | GO 1260 | GRANT EXECUTE ON interop_63 to nonadmin; GRANT EXECUTE ON native_63 to nonadmin; 1261 | GO 1262 | 1263 | create or ALTER procedure [dbo].[interop_64] as begin exec dbo.native_64 end 1264 | GO 1265 | CREATE OR ALTER procedure [dbo].[native_64] 1266 | with native_compilation, schemabinding, execute as owner 1267 | as 1268 | begin atomic 1269 | with (transaction isolation level=snapshot, language=N'us_english') 1270 | 1271 | declare @i bigint 1272 | 1273 | insert dbo.memopt default values 1274 | select @i = scope_identity() 1275 | 1276 | delete dbo.memopt where id = @i 1277 | 1278 | end 1279 | GO 1280 | GRANT EXECUTE ON interop_64 to nonadmin; GRANT EXECUTE ON native_64 to nonadmin; 1281 | GO 1282 | 1283 | create or ALTER procedure [dbo].[interop_65] as begin exec dbo.native_65 end 1284 | GO 1285 | CREATE OR ALTER procedure [dbo].[native_65] 1286 | with native_compilation, schemabinding, execute as owner 1287 | as 1288 | begin atomic 1289 | with (transaction isolation level=snapshot, language=N'us_english') 1290 | 1291 | declare @i bigint 1292 | 1293 | insert dbo.memopt default values 1294 | select @i = scope_identity() 1295 | 1296 | delete dbo.memopt where id = @i 1297 | 1298 | end 1299 | GO 1300 | GRANT EXECUTE ON interop_65 to nonadmin; GRANT EXECUTE ON native_65 to nonadmin; 1301 | GO 1302 | 1303 | create or ALTER procedure [dbo].[interop_66] as begin exec dbo.native_66 end 1304 | GO 1305 | CREATE OR ALTER procedure [dbo].[native_66] 1306 | with native_compilation, schemabinding, execute as owner 1307 | as 1308 | begin atomic 1309 | with (transaction isolation level=snapshot, language=N'us_english') 1310 | 1311 | declare @i bigint 1312 | 1313 | insert dbo.memopt default values 1314 | select @i = scope_identity() 1315 | 1316 | delete dbo.memopt where id = @i 1317 | 1318 | end 1319 | GO 1320 | GRANT EXECUTE ON interop_66 to nonadmin; GRANT EXECUTE ON native_66 to nonadmin; 1321 | GO 1322 | 1323 | create or ALTER procedure [dbo].[interop_67] as begin exec dbo.native_67 end 1324 | GO 1325 | CREATE OR ALTER procedure [dbo].[native_67] 1326 | with native_compilation, schemabinding, execute as owner 1327 | as 1328 | begin atomic 1329 | with (transaction isolation level=snapshot, language=N'us_english') 1330 | 1331 | declare @i bigint 1332 | 1333 | insert dbo.memopt default values 1334 | select @i = scope_identity() 1335 | 1336 | delete dbo.memopt where id = @i 1337 | 1338 | end 1339 | GO 1340 | GRANT EXECUTE ON interop_67 to nonadmin; GRANT EXECUTE ON native_67 to nonadmin; 1341 | GO 1342 | 1343 | create or ALTER procedure [dbo].[interop_68] as begin exec dbo.native_68 end 1344 | GO 1345 | CREATE OR ALTER procedure [dbo].[native_68] 1346 | with native_compilation, schemabinding, execute as owner 1347 | as 1348 | begin atomic 1349 | with (transaction isolation level=snapshot, language=N'us_english') 1350 | 1351 | declare @i bigint 1352 | 1353 | insert dbo.memopt default values 1354 | select @i = scope_identity() 1355 | 1356 | delete dbo.memopt where id = @i 1357 | 1358 | end 1359 | GO 1360 | GRANT EXECUTE ON interop_68 to nonadmin; GRANT EXECUTE ON native_68 to nonadmin; 1361 | GO 1362 | 1363 | create or ALTER procedure [dbo].[interop_69] as begin exec dbo.native_69 end 1364 | GO 1365 | CREATE OR ALTER procedure [dbo].[native_69] 1366 | with native_compilation, schemabinding, execute as owner 1367 | as 1368 | begin atomic 1369 | with (transaction isolation level=snapshot, language=N'us_english') 1370 | 1371 | declare @i bigint 1372 | 1373 | insert dbo.memopt default values 1374 | select @i = scope_identity() 1375 | 1376 | delete dbo.memopt where id = @i 1377 | 1378 | end 1379 | GO 1380 | GRANT EXECUTE ON interop_69 to nonadmin; GRANT EXECUTE ON native_69 to nonadmin; 1381 | GO 1382 | 1383 | create or ALTER procedure [dbo].[interop_70] as begin exec dbo.native_70 end 1384 | GO 1385 | CREATE OR ALTER procedure [dbo].[native_70] 1386 | with native_compilation, schemabinding, execute as owner 1387 | as 1388 | begin atomic 1389 | with (transaction isolation level=snapshot, language=N'us_english') 1390 | 1391 | declare @i bigint 1392 | 1393 | insert dbo.memopt default values 1394 | select @i = scope_identity() 1395 | 1396 | delete dbo.memopt where id = @i 1397 | 1398 | end 1399 | GO 1400 | GRANT EXECUTE ON interop_70 to nonadmin; GRANT EXECUTE ON native_70 to nonadmin; 1401 | GO 1402 | 1403 | create or ALTER procedure [dbo].[interop_71] as begin exec dbo.native_71 end 1404 | GO 1405 | CREATE OR ALTER procedure [dbo].[native_71] 1406 | with native_compilation, schemabinding, execute as owner 1407 | as 1408 | begin atomic 1409 | with (transaction isolation level=snapshot, language=N'us_english') 1410 | 1411 | declare @i bigint 1412 | 1413 | insert dbo.memopt default values 1414 | select @i = scope_identity() 1415 | 1416 | delete dbo.memopt where id = @i 1417 | 1418 | end 1419 | GO 1420 | GRANT EXECUTE ON interop_71 to nonadmin; GRANT EXECUTE ON native_71 to nonadmin; 1421 | GO 1422 | 1423 | create or ALTER procedure [dbo].[interop_72] as begin exec dbo.native_72 end 1424 | GO 1425 | CREATE OR ALTER procedure [dbo].[native_72] 1426 | with native_compilation, schemabinding, execute as owner 1427 | as 1428 | begin atomic 1429 | with (transaction isolation level=snapshot, language=N'us_english') 1430 | 1431 | declare @i bigint 1432 | 1433 | insert dbo.memopt default values 1434 | select @i = scope_identity() 1435 | 1436 | delete dbo.memopt where id = @i 1437 | 1438 | end 1439 | GO 1440 | GRANT EXECUTE ON interop_72 to nonadmin; GRANT EXECUTE ON native_72 to nonadmin; 1441 | GO 1442 | 1443 | create or ALTER procedure [dbo].[interop_73] as begin exec dbo.native_73 end 1444 | GO 1445 | CREATE OR ALTER procedure [dbo].[native_73] 1446 | with native_compilation, schemabinding, execute as owner 1447 | as 1448 | begin atomic 1449 | with (transaction isolation level=snapshot, language=N'us_english') 1450 | 1451 | declare @i bigint 1452 | 1453 | insert dbo.memopt default values 1454 | select @i = scope_identity() 1455 | 1456 | delete dbo.memopt where id = @i 1457 | 1458 | end 1459 | GO 1460 | GRANT EXECUTE ON interop_73 to nonadmin; GRANT EXECUTE ON native_73 to nonadmin; 1461 | GO 1462 | 1463 | create or ALTER procedure [dbo].[interop_74] as begin exec dbo.native_74 end 1464 | GO 1465 | CREATE OR ALTER procedure [dbo].[native_74] 1466 | with native_compilation, schemabinding, execute as owner 1467 | as 1468 | begin atomic 1469 | with (transaction isolation level=snapshot, language=N'us_english') 1470 | 1471 | declare @i bigint 1472 | 1473 | insert dbo.memopt default values 1474 | select @i = scope_identity() 1475 | 1476 | delete dbo.memopt where id = @i 1477 | 1478 | end 1479 | GO 1480 | GRANT EXECUTE ON interop_74 to nonadmin; GRANT EXECUTE ON native_74 to nonadmin; 1481 | GO 1482 | 1483 | create or ALTER procedure [dbo].[interop_75] as begin exec dbo.native_75 end 1484 | GO 1485 | CREATE OR ALTER procedure [dbo].[native_75] 1486 | with native_compilation, schemabinding, execute as owner 1487 | as 1488 | begin atomic 1489 | with (transaction isolation level=snapshot, language=N'us_english') 1490 | 1491 | declare @i bigint 1492 | 1493 | insert dbo.memopt default values 1494 | select @i = scope_identity() 1495 | 1496 | delete dbo.memopt where id = @i 1497 | 1498 | end 1499 | GO 1500 | GRANT EXECUTE ON interop_75 to nonadmin; GRANT EXECUTE ON native_75 to nonadmin; 1501 | GO 1502 | 1503 | create or ALTER procedure [dbo].[interop_76] as begin exec dbo.native_76 end 1504 | GO 1505 | CREATE OR ALTER procedure [dbo].[native_76] 1506 | with native_compilation, schemabinding, execute as owner 1507 | as 1508 | begin atomic 1509 | with (transaction isolation level=snapshot, language=N'us_english') 1510 | 1511 | declare @i bigint 1512 | 1513 | insert dbo.memopt default values 1514 | select @i = scope_identity() 1515 | 1516 | delete dbo.memopt where id = @i 1517 | 1518 | end 1519 | GO 1520 | GRANT EXECUTE ON interop_76 to nonadmin; GRANT EXECUTE ON native_76 to nonadmin; 1521 | GO 1522 | 1523 | create or ALTER procedure [dbo].[interop_77] as begin exec dbo.native_77 end 1524 | GO 1525 | CREATE OR ALTER procedure [dbo].[native_77] 1526 | with native_compilation, schemabinding, execute as owner 1527 | as 1528 | begin atomic 1529 | with (transaction isolation level=snapshot, language=N'us_english') 1530 | 1531 | declare @i bigint 1532 | 1533 | insert dbo.memopt default values 1534 | select @i = scope_identity() 1535 | 1536 | delete dbo.memopt where id = @i 1537 | 1538 | end 1539 | GO 1540 | GRANT EXECUTE ON interop_77 to nonadmin; GRANT EXECUTE ON native_77 to nonadmin; 1541 | GO 1542 | 1543 | create or ALTER procedure [dbo].[interop_78] as begin exec dbo.native_78 end 1544 | GO 1545 | CREATE OR ALTER procedure [dbo].[native_78] 1546 | with native_compilation, schemabinding, execute as owner 1547 | as 1548 | begin atomic 1549 | with (transaction isolation level=snapshot, language=N'us_english') 1550 | 1551 | declare @i bigint 1552 | 1553 | insert dbo.memopt default values 1554 | select @i = scope_identity() 1555 | 1556 | delete dbo.memopt where id = @i 1557 | 1558 | end 1559 | GO 1560 | GRANT EXECUTE ON interop_78 to nonadmin; GRANT EXECUTE ON native_78 to nonadmin; 1561 | GO 1562 | 1563 | create or ALTER procedure [dbo].[interop_79] as begin exec dbo.native_79 end 1564 | GO 1565 | CREATE OR ALTER procedure [dbo].[native_79] 1566 | with native_compilation, schemabinding, execute as owner 1567 | as 1568 | begin atomic 1569 | with (transaction isolation level=snapshot, language=N'us_english') 1570 | 1571 | declare @i bigint 1572 | 1573 | insert dbo.memopt default values 1574 | select @i = scope_identity() 1575 | 1576 | delete dbo.memopt where id = @i 1577 | 1578 | end 1579 | GO 1580 | GRANT EXECUTE ON interop_79 to nonadmin; GRANT EXECUTE ON native_79 to nonadmin; 1581 | GO 1582 | 1583 | create or ALTER procedure [dbo].[interop_80] as begin exec dbo.native_80 end 1584 | GO 1585 | CREATE OR ALTER procedure [dbo].[native_80] 1586 | with native_compilation, schemabinding, execute as owner 1587 | as 1588 | begin atomic 1589 | with (transaction isolation level=snapshot, language=N'us_english') 1590 | 1591 | declare @i bigint 1592 | 1593 | insert dbo.memopt default values 1594 | select @i = scope_identity() 1595 | 1596 | delete dbo.memopt where id = @i 1597 | 1598 | end 1599 | GO 1600 | GRANT EXECUTE ON interop_80 to nonadmin; GRANT EXECUTE ON native_80 to nonadmin; 1601 | GO 1602 | 1603 | create or ALTER procedure [dbo].[interop_81] as begin exec dbo.native_81 end 1604 | GO 1605 | CREATE OR ALTER procedure [dbo].[native_81] 1606 | with native_compilation, schemabinding, execute as owner 1607 | as 1608 | begin atomic 1609 | with (transaction isolation level=snapshot, language=N'us_english') 1610 | 1611 | declare @i bigint 1612 | 1613 | insert dbo.memopt default values 1614 | select @i = scope_identity() 1615 | 1616 | delete dbo.memopt where id = @i 1617 | 1618 | end 1619 | GO 1620 | GRANT EXECUTE ON interop_81 to nonadmin; GRANT EXECUTE ON native_81 to nonadmin; 1621 | GO 1622 | 1623 | create or ALTER procedure [dbo].[interop_82] as begin exec dbo.native_82 end 1624 | GO 1625 | CREATE OR ALTER procedure [dbo].[native_82] 1626 | with native_compilation, schemabinding, execute as owner 1627 | as 1628 | begin atomic 1629 | with (transaction isolation level=snapshot, language=N'us_english') 1630 | 1631 | declare @i bigint 1632 | 1633 | insert dbo.memopt default values 1634 | select @i = scope_identity() 1635 | 1636 | delete dbo.memopt where id = @i 1637 | 1638 | end 1639 | GO 1640 | GRANT EXECUTE ON interop_82 to nonadmin; GRANT EXECUTE ON native_82 to nonadmin; 1641 | GO 1642 | 1643 | create or ALTER procedure [dbo].[interop_83] as begin exec dbo.native_83 end 1644 | GO 1645 | CREATE OR ALTER procedure [dbo].[native_83] 1646 | with native_compilation, schemabinding, execute as owner 1647 | as 1648 | begin atomic 1649 | with (transaction isolation level=snapshot, language=N'us_english') 1650 | 1651 | declare @i bigint 1652 | 1653 | insert dbo.memopt default values 1654 | select @i = scope_identity() 1655 | 1656 | delete dbo.memopt where id = @i 1657 | 1658 | end 1659 | GO 1660 | GRANT EXECUTE ON interop_83 to nonadmin; GRANT EXECUTE ON native_83 to nonadmin; 1661 | GO 1662 | 1663 | create or ALTER procedure [dbo].[interop_84] as begin exec dbo.native_84 end 1664 | GO 1665 | CREATE OR ALTER procedure [dbo].[native_84] 1666 | with native_compilation, schemabinding, execute as owner 1667 | as 1668 | begin atomic 1669 | with (transaction isolation level=snapshot, language=N'us_english') 1670 | 1671 | declare @i bigint 1672 | 1673 | insert dbo.memopt default values 1674 | select @i = scope_identity() 1675 | 1676 | delete dbo.memopt where id = @i 1677 | 1678 | end 1679 | GO 1680 | GRANT EXECUTE ON interop_84 to nonadmin; GRANT EXECUTE ON native_84 to nonadmin; 1681 | GO 1682 | 1683 | create or ALTER procedure [dbo].[interop_85] as begin exec dbo.native_85 end 1684 | GO 1685 | CREATE OR ALTER procedure [dbo].[native_85] 1686 | with native_compilation, schemabinding, execute as owner 1687 | as 1688 | begin atomic 1689 | with (transaction isolation level=snapshot, language=N'us_english') 1690 | 1691 | declare @i bigint 1692 | 1693 | insert dbo.memopt default values 1694 | select @i = scope_identity() 1695 | 1696 | delete dbo.memopt where id = @i 1697 | 1698 | end 1699 | GO 1700 | GRANT EXECUTE ON interop_85 to nonadmin; GRANT EXECUTE ON native_85 to nonadmin; 1701 | GO 1702 | 1703 | create or ALTER procedure [dbo].[interop_86] as begin exec dbo.native_86 end 1704 | GO 1705 | CREATE OR ALTER procedure [dbo].[native_86] 1706 | with native_compilation, schemabinding, execute as owner 1707 | as 1708 | begin atomic 1709 | with (transaction isolation level=snapshot, language=N'us_english') 1710 | 1711 | declare @i bigint 1712 | 1713 | insert dbo.memopt default values 1714 | select @i = scope_identity() 1715 | 1716 | delete dbo.memopt where id = @i 1717 | 1718 | end 1719 | GO 1720 | GRANT EXECUTE ON interop_86 to nonadmin; GRANT EXECUTE ON native_86 to nonadmin; 1721 | GO 1722 | 1723 | create or ALTER procedure [dbo].[interop_87] as begin exec dbo.native_87 end 1724 | GO 1725 | CREATE OR ALTER procedure [dbo].[native_87] 1726 | with native_compilation, schemabinding, execute as owner 1727 | as 1728 | begin atomic 1729 | with (transaction isolation level=snapshot, language=N'us_english') 1730 | 1731 | declare @i bigint 1732 | 1733 | insert dbo.memopt default values 1734 | select @i = scope_identity() 1735 | 1736 | delete dbo.memopt where id = @i 1737 | 1738 | end 1739 | GO 1740 | GRANT EXECUTE ON interop_87 to nonadmin; GRANT EXECUTE ON native_87 to nonadmin; 1741 | GO 1742 | 1743 | create or ALTER procedure [dbo].[interop_88] as begin exec dbo.native_88 end 1744 | GO 1745 | CREATE OR ALTER procedure [dbo].[native_88] 1746 | with native_compilation, schemabinding, execute as owner 1747 | as 1748 | begin atomic 1749 | with (transaction isolation level=snapshot, language=N'us_english') 1750 | 1751 | declare @i bigint 1752 | 1753 | insert dbo.memopt default values 1754 | select @i = scope_identity() 1755 | 1756 | delete dbo.memopt where id = @i 1757 | 1758 | end 1759 | GO 1760 | GRANT EXECUTE ON interop_88 to nonadmin; GRANT EXECUTE ON native_88 to nonadmin; 1761 | GO 1762 | 1763 | create or ALTER procedure [dbo].[interop_89] as begin exec dbo.native_89 end 1764 | GO 1765 | CREATE OR ALTER procedure [dbo].[native_89] 1766 | with native_compilation, schemabinding, execute as owner 1767 | as 1768 | begin atomic 1769 | with (transaction isolation level=snapshot, language=N'us_english') 1770 | 1771 | declare @i bigint 1772 | 1773 | insert dbo.memopt default values 1774 | select @i = scope_identity() 1775 | 1776 | delete dbo.memopt where id = @i 1777 | 1778 | end 1779 | GO 1780 | GRANT EXECUTE ON interop_89 to nonadmin; GRANT EXECUTE ON native_89 to nonadmin; 1781 | GO 1782 | 1783 | create or ALTER procedure [dbo].[interop_90] as begin exec dbo.native_90 end 1784 | GO 1785 | CREATE OR ALTER procedure [dbo].[native_90] 1786 | with native_compilation, schemabinding, execute as owner 1787 | as 1788 | begin atomic 1789 | with (transaction isolation level=snapshot, language=N'us_english') 1790 | 1791 | declare @i bigint 1792 | 1793 | insert dbo.memopt default values 1794 | select @i = scope_identity() 1795 | 1796 | delete dbo.memopt where id = @i 1797 | 1798 | end 1799 | GO 1800 | GRANT EXECUTE ON interop_90 to nonadmin; GRANT EXECUTE ON native_90 to nonadmin; 1801 | GO 1802 | 1803 | create or ALTER procedure [dbo].[interop_91] as begin exec dbo.native_91 end 1804 | GO 1805 | CREATE OR ALTER procedure [dbo].[native_91] 1806 | with native_compilation, schemabinding, execute as owner 1807 | as 1808 | begin atomic 1809 | with (transaction isolation level=snapshot, language=N'us_english') 1810 | 1811 | declare @i bigint 1812 | 1813 | insert dbo.memopt default values 1814 | select @i = scope_identity() 1815 | 1816 | delete dbo.memopt where id = @i 1817 | 1818 | end 1819 | GO 1820 | GRANT EXECUTE ON interop_91 to nonadmin; GRANT EXECUTE ON native_91 to nonadmin; 1821 | GO 1822 | 1823 | create or ALTER procedure [dbo].[interop_92] as begin exec dbo.native_92 end 1824 | GO 1825 | CREATE OR ALTER procedure [dbo].[native_92] 1826 | with native_compilation, schemabinding, execute as owner 1827 | as 1828 | begin atomic 1829 | with (transaction isolation level=snapshot, language=N'us_english') 1830 | 1831 | declare @i bigint 1832 | 1833 | insert dbo.memopt default values 1834 | select @i = scope_identity() 1835 | 1836 | delete dbo.memopt where id = @i 1837 | 1838 | end 1839 | GO 1840 | GRANT EXECUTE ON interop_92 to nonadmin; GRANT EXECUTE ON native_92 to nonadmin; 1841 | GO 1842 | 1843 | create or ALTER procedure [dbo].[interop_93] as begin exec dbo.native_93 end 1844 | GO 1845 | CREATE OR ALTER procedure [dbo].[native_93] 1846 | with native_compilation, schemabinding, execute as owner 1847 | as 1848 | begin atomic 1849 | with (transaction isolation level=snapshot, language=N'us_english') 1850 | 1851 | declare @i bigint 1852 | 1853 | insert dbo.memopt default values 1854 | select @i = scope_identity() 1855 | 1856 | delete dbo.memopt where id = @i 1857 | 1858 | end 1859 | GO 1860 | GRANT EXECUTE ON interop_93 to nonadmin; GRANT EXECUTE ON native_93 to nonadmin; 1861 | GO 1862 | 1863 | create or ALTER procedure [dbo].[interop_94] as begin exec dbo.native_94 end 1864 | GO 1865 | CREATE OR ALTER procedure [dbo].[native_94] 1866 | with native_compilation, schemabinding, execute as owner 1867 | as 1868 | begin atomic 1869 | with (transaction isolation level=snapshot, language=N'us_english') 1870 | 1871 | declare @i bigint 1872 | 1873 | insert dbo.memopt default values 1874 | select @i = scope_identity() 1875 | 1876 | delete dbo.memopt where id = @i 1877 | 1878 | end 1879 | GO 1880 | GRANT EXECUTE ON interop_94 to nonadmin; GRANT EXECUTE ON native_94 to nonadmin; 1881 | GO 1882 | 1883 | create or ALTER procedure [dbo].[interop_95] as begin exec dbo.native_95 end 1884 | GO 1885 | CREATE OR ALTER procedure [dbo].[native_95] 1886 | with native_compilation, schemabinding, execute as owner 1887 | as 1888 | begin atomic 1889 | with (transaction isolation level=snapshot, language=N'us_english') 1890 | 1891 | declare @i bigint 1892 | 1893 | insert dbo.memopt default values 1894 | select @i = scope_identity() 1895 | 1896 | delete dbo.memopt where id = @i 1897 | 1898 | end 1899 | GO 1900 | GRANT EXECUTE ON interop_95 to nonadmin; GRANT EXECUTE ON native_95 to nonadmin; 1901 | GO 1902 | 1903 | create or ALTER procedure [dbo].[interop_96] as begin exec dbo.native_96 end 1904 | GO 1905 | CREATE OR ALTER procedure [dbo].[native_96] 1906 | with native_compilation, schemabinding, execute as owner 1907 | as 1908 | begin atomic 1909 | with (transaction isolation level=snapshot, language=N'us_english') 1910 | 1911 | declare @i bigint 1912 | 1913 | insert dbo.memopt default values 1914 | select @i = scope_identity() 1915 | 1916 | delete dbo.memopt where id = @i 1917 | 1918 | end 1919 | GO 1920 | GRANT EXECUTE ON interop_96 to nonadmin; GRANT EXECUTE ON native_96 to nonadmin; 1921 | GO 1922 | 1923 | create or ALTER procedure [dbo].[interop_97] as begin exec dbo.native_97 end 1924 | GO 1925 | CREATE OR ALTER procedure [dbo].[native_97] 1926 | with native_compilation, schemabinding, execute as owner 1927 | as 1928 | begin atomic 1929 | with (transaction isolation level=snapshot, language=N'us_english') 1930 | 1931 | declare @i bigint 1932 | 1933 | insert dbo.memopt default values 1934 | select @i = scope_identity() 1935 | 1936 | delete dbo.memopt where id = @i 1937 | 1938 | end 1939 | GO 1940 | GRANT EXECUTE ON interop_97 to nonadmin; GRANT EXECUTE ON native_97 to nonadmin; 1941 | GO 1942 | 1943 | create or ALTER procedure [dbo].[interop_98] as begin exec dbo.native_98 end 1944 | GO 1945 | CREATE OR ALTER procedure [dbo].[native_98] 1946 | with native_compilation, schemabinding, execute as owner 1947 | as 1948 | begin atomic 1949 | with (transaction isolation level=snapshot, language=N'us_english') 1950 | 1951 | declare @i bigint 1952 | 1953 | insert dbo.memopt default values 1954 | select @i = scope_identity() 1955 | 1956 | delete dbo.memopt where id = @i 1957 | 1958 | end 1959 | GO 1960 | GRANT EXECUTE ON interop_98 to nonadmin; GRANT EXECUTE ON native_98 to nonadmin; 1961 | GO 1962 | 1963 | create or ALTER procedure [dbo].[interop_99] as begin exec dbo.native_99 end 1964 | GO 1965 | CREATE OR ALTER procedure [dbo].[native_99] 1966 | with native_compilation, schemabinding, execute as owner 1967 | as 1968 | begin atomic 1969 | with (transaction isolation level=snapshot, language=N'us_english') 1970 | 1971 | declare @i bigint 1972 | 1973 | insert dbo.memopt default values 1974 | select @i = scope_identity() 1975 | 1976 | delete dbo.memopt where id = @i 1977 | 1978 | end 1979 | GO 1980 | GRANT EXECUTE ON interop_99 to nonadmin; GRANT EXECUTE ON native_99 to nonadmin; 1981 | GO 1982 | 1983 | create or ALTER procedure [dbo].[interop_100] as begin exec dbo.native_100 end 1984 | GO 1985 | CREATE OR ALTER procedure [dbo].[native_100] 1986 | with native_compilation, schemabinding, execute as owner 1987 | as 1988 | begin atomic 1989 | with (transaction isolation level=snapshot, language=N'us_english') 1990 | 1991 | declare @i bigint 1992 | 1993 | insert dbo.memopt default values 1994 | select @i = scope_identity() 1995 | 1996 | delete dbo.memopt where id = @i 1997 | 1998 | end 1999 | GO 2000 | GRANT EXECUTE ON interop_100 to nonadmin; GRANT EXECUTE ON native_100 to nonadmin; 2001 | GO 2002 | 2003 | create or ALTER procedure [dbo].[interop_101] as begin exec dbo.native_101 end 2004 | GO 2005 | CREATE OR ALTER procedure [dbo].[native_101] 2006 | with native_compilation, schemabinding, execute as owner 2007 | as 2008 | begin atomic 2009 | with (transaction isolation level=snapshot, language=N'us_english') 2010 | 2011 | declare @i bigint 2012 | 2013 | insert dbo.memopt default values 2014 | select @i = scope_identity() 2015 | 2016 | delete dbo.memopt where id = @i 2017 | 2018 | end 2019 | GO 2020 | GRANT EXECUTE ON interop_101 to nonadmin; GRANT EXECUTE ON native_101 to nonadmin; 2021 | GO 2022 | 2023 | create or ALTER procedure [dbo].[interop_102] as begin exec dbo.native_102 end 2024 | GO 2025 | CREATE OR ALTER procedure [dbo].[native_102] 2026 | with native_compilation, schemabinding, execute as owner 2027 | as 2028 | begin atomic 2029 | with (transaction isolation level=snapshot, language=N'us_english') 2030 | 2031 | declare @i bigint 2032 | 2033 | insert dbo.memopt default values 2034 | select @i = scope_identity() 2035 | 2036 | delete dbo.memopt where id = @i 2037 | 2038 | end 2039 | GO 2040 | GRANT EXECUTE ON interop_102 to nonadmin; GRANT EXECUTE ON native_102 to nonadmin; 2041 | GO 2042 | 2043 | create or ALTER procedure [dbo].[interop_103] as begin exec dbo.native_103 end 2044 | GO 2045 | CREATE OR ALTER procedure [dbo].[native_103] 2046 | with native_compilation, schemabinding, execute as owner 2047 | as 2048 | begin atomic 2049 | with (transaction isolation level=snapshot, language=N'us_english') 2050 | 2051 | declare @i bigint 2052 | 2053 | insert dbo.memopt default values 2054 | select @i = scope_identity() 2055 | 2056 | delete dbo.memopt where id = @i 2057 | 2058 | end 2059 | GO 2060 | GRANT EXECUTE ON interop_103 to nonadmin; GRANT EXECUTE ON native_103 to nonadmin; 2061 | GO 2062 | 2063 | create or ALTER procedure [dbo].[interop_104] as begin exec dbo.native_104 end 2064 | GO 2065 | CREATE OR ALTER procedure [dbo].[native_104] 2066 | with native_compilation, schemabinding, execute as owner 2067 | as 2068 | begin atomic 2069 | with (transaction isolation level=snapshot, language=N'us_english') 2070 | 2071 | declare @i bigint 2072 | 2073 | insert dbo.memopt default values 2074 | select @i = scope_identity() 2075 | 2076 | delete dbo.memopt where id = @i 2077 | 2078 | end 2079 | GO 2080 | GRANT EXECUTE ON interop_104 to nonadmin; GRANT EXECUTE ON native_104 to nonadmin; 2081 | GO 2082 | 2083 | create or ALTER procedure [dbo].[interop_105] as begin exec dbo.native_105 end 2084 | GO 2085 | CREATE OR ALTER procedure [dbo].[native_105] 2086 | with native_compilation, schemabinding, execute as owner 2087 | as 2088 | begin atomic 2089 | with (transaction isolation level=snapshot, language=N'us_english') 2090 | 2091 | declare @i bigint 2092 | 2093 | insert dbo.memopt default values 2094 | select @i = scope_identity() 2095 | 2096 | delete dbo.memopt where id = @i 2097 | 2098 | end 2099 | GO 2100 | GRANT EXECUTE ON interop_105 to nonadmin; GRANT EXECUTE ON native_105 to nonadmin; 2101 | GO 2102 | 2103 | create or ALTER procedure [dbo].[interop_106] as begin exec dbo.native_106 end 2104 | GO 2105 | CREATE OR ALTER procedure [dbo].[native_106] 2106 | with native_compilation, schemabinding, execute as owner 2107 | as 2108 | begin atomic 2109 | with (transaction isolation level=snapshot, language=N'us_english') 2110 | 2111 | declare @i bigint 2112 | 2113 | insert dbo.memopt default values 2114 | select @i = scope_identity() 2115 | 2116 | delete dbo.memopt where id = @i 2117 | 2118 | end 2119 | GO 2120 | GRANT EXECUTE ON interop_106 to nonadmin; GRANT EXECUTE ON native_106 to nonadmin; 2121 | GO 2122 | 2123 | create or ALTER procedure [dbo].[interop_107] as begin exec dbo.native_107 end 2124 | GO 2125 | CREATE OR ALTER procedure [dbo].[native_107] 2126 | with native_compilation, schemabinding, execute as owner 2127 | as 2128 | begin atomic 2129 | with (transaction isolation level=snapshot, language=N'us_english') 2130 | 2131 | declare @i bigint 2132 | 2133 | insert dbo.memopt default values 2134 | select @i = scope_identity() 2135 | 2136 | delete dbo.memopt where id = @i 2137 | 2138 | end 2139 | GO 2140 | GRANT EXECUTE ON interop_107 to nonadmin; GRANT EXECUTE ON native_107 to nonadmin; 2141 | GO 2142 | 2143 | create or ALTER procedure [dbo].[interop_108] as begin exec dbo.native_108 end 2144 | GO 2145 | CREATE OR ALTER procedure [dbo].[native_108] 2146 | with native_compilation, schemabinding, execute as owner 2147 | as 2148 | begin atomic 2149 | with (transaction isolation level=snapshot, language=N'us_english') 2150 | 2151 | declare @i bigint 2152 | 2153 | insert dbo.memopt default values 2154 | select @i = scope_identity() 2155 | 2156 | delete dbo.memopt where id = @i 2157 | 2158 | end 2159 | GO 2160 | GRANT EXECUTE ON interop_108 to nonadmin; GRANT EXECUTE ON native_108 to nonadmin; 2161 | GO 2162 | 2163 | create or ALTER procedure [dbo].[interop_109] as begin exec dbo.native_109 end 2164 | GO 2165 | CREATE OR ALTER procedure [dbo].[native_109] 2166 | with native_compilation, schemabinding, execute as owner 2167 | as 2168 | begin atomic 2169 | with (transaction isolation level=snapshot, language=N'us_english') 2170 | 2171 | declare @i bigint 2172 | 2173 | insert dbo.memopt default values 2174 | select @i = scope_identity() 2175 | 2176 | delete dbo.memopt where id = @i 2177 | 2178 | end 2179 | GO 2180 | GRANT EXECUTE ON interop_109 to nonadmin; GRANT EXECUTE ON native_109 to nonadmin; 2181 | GO 2182 | 2183 | create or ALTER procedure [dbo].[interop_110] as begin exec dbo.native_110 end 2184 | GO 2185 | CREATE OR ALTER procedure [dbo].[native_110] 2186 | with native_compilation, schemabinding, execute as owner 2187 | as 2188 | begin atomic 2189 | with (transaction isolation level=snapshot, language=N'us_english') 2190 | 2191 | declare @i bigint 2192 | 2193 | insert dbo.memopt default values 2194 | select @i = scope_identity() 2195 | 2196 | delete dbo.memopt where id = @i 2197 | 2198 | end 2199 | GO 2200 | GRANT EXECUTE ON interop_110 to nonadmin; GRANT EXECUTE ON native_110 to nonadmin; 2201 | GO 2202 | 2203 | create or ALTER procedure [dbo].[interop_111] as begin exec dbo.native_111 end 2204 | GO 2205 | CREATE OR ALTER procedure [dbo].[native_111] 2206 | with native_compilation, schemabinding, execute as owner 2207 | as 2208 | begin atomic 2209 | with (transaction isolation level=snapshot, language=N'us_english') 2210 | 2211 | declare @i bigint 2212 | 2213 | insert dbo.memopt default values 2214 | select @i = scope_identity() 2215 | 2216 | delete dbo.memopt where id = @i 2217 | 2218 | end 2219 | GO 2220 | GRANT EXECUTE ON interop_111 to nonadmin; GRANT EXECUTE ON native_111 to nonadmin; 2221 | GO 2222 | 2223 | create or ALTER procedure [dbo].[interop_112] as begin exec dbo.native_112 end 2224 | GO 2225 | CREATE OR ALTER procedure [dbo].[native_112] 2226 | with native_compilation, schemabinding, execute as owner 2227 | as 2228 | begin atomic 2229 | with (transaction isolation level=snapshot, language=N'us_english') 2230 | 2231 | declare @i bigint 2232 | 2233 | insert dbo.memopt default values 2234 | select @i = scope_identity() 2235 | 2236 | delete dbo.memopt where id = @i 2237 | 2238 | end 2239 | GO 2240 | GRANT EXECUTE ON interop_112 to nonadmin; GRANT EXECUTE ON native_112 to nonadmin; 2241 | GO 2242 | 2243 | create or ALTER procedure [dbo].[interop_113] as begin exec dbo.native_113 end 2244 | GO 2245 | CREATE OR ALTER procedure [dbo].[native_113] 2246 | with native_compilation, schemabinding, execute as owner 2247 | as 2248 | begin atomic 2249 | with (transaction isolation level=snapshot, language=N'us_english') 2250 | 2251 | declare @i bigint 2252 | 2253 | insert dbo.memopt default values 2254 | select @i = scope_identity() 2255 | 2256 | delete dbo.memopt where id = @i 2257 | 2258 | end 2259 | GO 2260 | GRANT EXECUTE ON interop_113 to nonadmin; GRANT EXECUTE ON native_113 to nonadmin; 2261 | GO 2262 | 2263 | create or ALTER procedure [dbo].[interop_114] as begin exec dbo.native_114 end 2264 | GO 2265 | CREATE OR ALTER procedure [dbo].[native_114] 2266 | with native_compilation, schemabinding, execute as owner 2267 | as 2268 | begin atomic 2269 | with (transaction isolation level=snapshot, language=N'us_english') 2270 | 2271 | declare @i bigint 2272 | 2273 | insert dbo.memopt default values 2274 | select @i = scope_identity() 2275 | 2276 | delete dbo.memopt where id = @i 2277 | 2278 | end 2279 | GO 2280 | GRANT EXECUTE ON interop_114 to nonadmin; GRANT EXECUTE ON native_114 to nonadmin; 2281 | GO 2282 | 2283 | create or ALTER procedure [dbo].[interop_115] as begin exec dbo.native_115 end 2284 | GO 2285 | CREATE OR ALTER procedure [dbo].[native_115] 2286 | with native_compilation, schemabinding, execute as owner 2287 | as 2288 | begin atomic 2289 | with (transaction isolation level=snapshot, language=N'us_english') 2290 | 2291 | declare @i bigint 2292 | 2293 | insert dbo.memopt default values 2294 | select @i = scope_identity() 2295 | 2296 | delete dbo.memopt where id = @i 2297 | 2298 | end 2299 | GO 2300 | GRANT EXECUTE ON interop_115 to nonadmin; GRANT EXECUTE ON native_115 to nonadmin; 2301 | GO 2302 | 2303 | create or ALTER procedure [dbo].[interop_116] as begin exec dbo.native_116 end 2304 | GO 2305 | CREATE OR ALTER procedure [dbo].[native_116] 2306 | with native_compilation, schemabinding, execute as owner 2307 | as 2308 | begin atomic 2309 | with (transaction isolation level=snapshot, language=N'us_english') 2310 | 2311 | declare @i bigint 2312 | 2313 | insert dbo.memopt default values 2314 | select @i = scope_identity() 2315 | 2316 | delete dbo.memopt where id = @i 2317 | 2318 | end 2319 | GO 2320 | GRANT EXECUTE ON interop_116 to nonadmin; GRANT EXECUTE ON native_116 to nonadmin; 2321 | GO 2322 | 2323 | create or ALTER procedure [dbo].[interop_117] as begin exec dbo.native_117 end 2324 | GO 2325 | CREATE OR ALTER procedure [dbo].[native_117] 2326 | with native_compilation, schemabinding, execute as owner 2327 | as 2328 | begin atomic 2329 | with (transaction isolation level=snapshot, language=N'us_english') 2330 | 2331 | declare @i bigint 2332 | 2333 | insert dbo.memopt default values 2334 | select @i = scope_identity() 2335 | 2336 | delete dbo.memopt where id = @i 2337 | 2338 | end 2339 | GO 2340 | GRANT EXECUTE ON interop_117 to nonadmin; GRANT EXECUTE ON native_117 to nonadmin; 2341 | GO 2342 | 2343 | create or ALTER procedure [dbo].[interop_118] as begin exec dbo.native_118 end 2344 | GO 2345 | CREATE OR ALTER procedure [dbo].[native_118] 2346 | with native_compilation, schemabinding, execute as owner 2347 | as 2348 | begin atomic 2349 | with (transaction isolation level=snapshot, language=N'us_english') 2350 | 2351 | declare @i bigint 2352 | 2353 | insert dbo.memopt default values 2354 | select @i = scope_identity() 2355 | 2356 | delete dbo.memopt where id = @i 2357 | 2358 | end 2359 | GO 2360 | GRANT EXECUTE ON interop_118 to nonadmin; GRANT EXECUTE ON native_118 to nonadmin; 2361 | GO 2362 | 2363 | create or ALTER procedure [dbo].[interop_119] as begin exec dbo.native_119 end 2364 | GO 2365 | CREATE OR ALTER procedure [dbo].[native_119] 2366 | with native_compilation, schemabinding, execute as owner 2367 | as 2368 | begin atomic 2369 | with (transaction isolation level=snapshot, language=N'us_english') 2370 | 2371 | declare @i bigint 2372 | 2373 | insert dbo.memopt default values 2374 | select @i = scope_identity() 2375 | 2376 | delete dbo.memopt where id = @i 2377 | 2378 | end 2379 | GO 2380 | GRANT EXECUTE ON interop_119 to nonadmin; GRANT EXECUTE ON native_119 to nonadmin; 2381 | GO 2382 | 2383 | create or ALTER procedure [dbo].[interop_120] as begin exec dbo.native_120 end 2384 | GO 2385 | CREATE OR ALTER procedure [dbo].[native_120] 2386 | with native_compilation, schemabinding, execute as owner 2387 | as 2388 | begin atomic 2389 | with (transaction isolation level=snapshot, language=N'us_english') 2390 | 2391 | declare @i bigint 2392 | 2393 | insert dbo.memopt default values 2394 | select @i = scope_identity() 2395 | 2396 | delete dbo.memopt where id = @i 2397 | 2398 | end 2399 | GO 2400 | GRANT EXECUTE ON interop_120 to nonadmin; GRANT EXECUTE ON native_120 to nonadmin; 2401 | GO 2402 | 2403 | create or ALTER procedure [dbo].[interop_121] as begin exec dbo.native_121 end 2404 | GO 2405 | CREATE OR ALTER procedure [dbo].[native_121] 2406 | with native_compilation, schemabinding, execute as owner 2407 | as 2408 | begin atomic 2409 | with (transaction isolation level=snapshot, language=N'us_english') 2410 | 2411 | declare @i bigint 2412 | 2413 | insert dbo.memopt default values 2414 | select @i = scope_identity() 2415 | 2416 | delete dbo.memopt where id = @i 2417 | 2418 | end 2419 | GO 2420 | GRANT EXECUTE ON interop_121 to nonadmin; GRANT EXECUTE ON native_121 to nonadmin; 2421 | GO 2422 | 2423 | create or ALTER procedure [dbo].[interop_122] as begin exec dbo.native_122 end 2424 | GO 2425 | CREATE OR ALTER procedure [dbo].[native_122] 2426 | with native_compilation, schemabinding, execute as owner 2427 | as 2428 | begin atomic 2429 | with (transaction isolation level=snapshot, language=N'us_english') 2430 | 2431 | declare @i bigint 2432 | 2433 | insert dbo.memopt default values 2434 | select @i = scope_identity() 2435 | 2436 | delete dbo.memopt where id = @i 2437 | 2438 | end 2439 | GO 2440 | GRANT EXECUTE ON interop_122 to nonadmin; GRANT EXECUTE ON native_122 to nonadmin; 2441 | GO 2442 | 2443 | create or ALTER procedure [dbo].[interop_123] as begin exec dbo.native_123 end 2444 | GO 2445 | CREATE OR ALTER procedure [dbo].[native_123] 2446 | with native_compilation, schemabinding, execute as owner 2447 | as 2448 | begin atomic 2449 | with (transaction isolation level=snapshot, language=N'us_english') 2450 | 2451 | declare @i bigint 2452 | 2453 | insert dbo.memopt default values 2454 | select @i = scope_identity() 2455 | 2456 | delete dbo.memopt where id = @i 2457 | 2458 | end 2459 | GO 2460 | GRANT EXECUTE ON interop_123 to nonadmin; GRANT EXECUTE ON native_123 to nonadmin; 2461 | GO 2462 | 2463 | create or ALTER procedure [dbo].[interop_124] as begin exec dbo.native_124 end 2464 | GO 2465 | CREATE OR ALTER procedure [dbo].[native_124] 2466 | with native_compilation, schemabinding, execute as owner 2467 | as 2468 | begin atomic 2469 | with (transaction isolation level=snapshot, language=N'us_english') 2470 | 2471 | declare @i bigint 2472 | 2473 | insert dbo.memopt default values 2474 | select @i = scope_identity() 2475 | 2476 | delete dbo.memopt where id = @i 2477 | 2478 | end 2479 | GO 2480 | GRANT EXECUTE ON interop_124 to nonadmin; GRANT EXECUTE ON native_124 to nonadmin; 2481 | GO 2482 | 2483 | create or ALTER procedure [dbo].[interop_125] as begin exec dbo.native_125 end 2484 | GO 2485 | CREATE OR ALTER procedure [dbo].[native_125] 2486 | with native_compilation, schemabinding, execute as owner 2487 | as 2488 | begin atomic 2489 | with (transaction isolation level=snapshot, language=N'us_english') 2490 | 2491 | declare @i bigint 2492 | 2493 | insert dbo.memopt default values 2494 | select @i = scope_identity() 2495 | 2496 | delete dbo.memopt where id = @i 2497 | 2498 | end 2499 | GO 2500 | GRANT EXECUTE ON interop_125 to nonadmin; GRANT EXECUTE ON native_125 to nonadmin; 2501 | GO 2502 | 2503 | create or ALTER procedure [dbo].[interop_126] as begin exec dbo.native_126 end 2504 | GO 2505 | CREATE OR ALTER procedure [dbo].[native_126] 2506 | with native_compilation, schemabinding, execute as owner 2507 | as 2508 | begin atomic 2509 | with (transaction isolation level=snapshot, language=N'us_english') 2510 | 2511 | declare @i bigint 2512 | 2513 | insert dbo.memopt default values 2514 | select @i = scope_identity() 2515 | 2516 | delete dbo.memopt where id = @i 2517 | 2518 | end 2519 | GO 2520 | GRANT EXECUTE ON interop_126 to nonadmin; GRANT EXECUTE ON native_126 to nonadmin; 2521 | GO 2522 | 2523 | create or ALTER procedure [dbo].[interop_127] as begin exec dbo.native_127 end 2524 | GO 2525 | CREATE OR ALTER procedure [dbo].[native_127] 2526 | with native_compilation, schemabinding, execute as owner 2527 | as 2528 | begin atomic 2529 | with (transaction isolation level=snapshot, language=N'us_english') 2530 | 2531 | declare @i bigint 2532 | 2533 | insert dbo.memopt default values 2534 | select @i = scope_identity() 2535 | 2536 | delete dbo.memopt where id = @i 2537 | 2538 | end 2539 | GO 2540 | GRANT EXECUTE ON interop_127 to nonadmin; GRANT EXECUTE ON native_127 to nonadmin; 2541 | GO 2542 | 2543 | create or ALTER procedure [dbo].[interop_128] as begin exec dbo.native_128 end 2544 | GO 2545 | CREATE OR ALTER procedure [dbo].[native_128] 2546 | with native_compilation, schemabinding, execute as owner 2547 | as 2548 | begin atomic 2549 | with (transaction isolation level=snapshot, language=N'us_english') 2550 | 2551 | declare @i bigint 2552 | 2553 | insert dbo.memopt default values 2554 | select @i = scope_identity() 2555 | 2556 | delete dbo.memopt where id = @i 2557 | 2558 | end 2559 | GO 2560 | GRANT EXECUTE ON interop_128 to nonadmin; GRANT EXECUTE ON native_128 to nonadmin; 2561 | GO 2562 | 2563 | /* 2564 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 2565 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2566 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 2567 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 2568 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 2569 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 2570 | SOFTWARE. 2571 | 2572 | This sample code is not supported under any Microsoft standard support program or service. 2573 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 2574 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 2575 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 2576 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 2577 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 2578 | */ -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/monitor.sql: -------------------------------------------------------------------------------- 1 | SELECT @@SERVERNAME, @@VERSION 2 | GO 3 | 4 | SELECT * 5 | FROM sys.dm_os_spinlock_stats 6 | ORDER BY backoffs desc 7 | GO 8 | 9 | SELECT * 10 | FROM sys.dm_os_wait_stats 11 | ORDER BY signal_wait_time_ms DESC 12 | GO 13 | 14 | dbcc sqlperf(spinlockstats, 'clear') 15 | GO 16 | 17 | dbcc sqlperf(waitstats, 'clear') 18 | GO 19 | 20 | SELECT * 21 | FROM sys.dm_os_nodes 22 | GO 23 | 24 | exec xp_readerrorlog 25 | GO 26 | 27 | SELECT * 28 | FROM sys.dm_tcp_listener_states 29 | GO 30 | 31 | dbcc tracestatus(-1) 32 | GO 33 | 34 | /* 35 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 36 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 37 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 38 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 39 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 40 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 41 | SOFTWARE. 42 | 43 | This sample code is not supported under any Microsoft standard support program or service. 44 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 45 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 46 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 47 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 48 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 49 | */ -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/repro.linq: -------------------------------------------------------------------------------- 1 | 2 | System.Threading.Tasks 3 | 4 | 5 | int numThreads = 500; 6 | ThreadPool.SetMinThreads(Environment.ProcessorCount * 25, Environment.ProcessorCount * 8); 7 | 8 | Parallel.For(0, numThreads, i => { 9 | var endpoint = string.Concat("tcp:somesql,1433"); 10 | 11 | try 12 | { 13 | // use the below for different port numbers - assuming 8 is the number of soft-NUMA nodes setup 14 | // endpoint = string.Concat(endpoint, ",", 1433 + i % 8); 15 | 16 | using(var con = new SqlConnection($"Data Source={endpoint};Initial Catalog=lockhashrepro;Integrated Security=false;user id=nonadmin;password=somepassword;Max Pool Size=5000;Connection Timeout=300;Encrypt=false;TransparentNetworkIPResolution=false;")) { 17 | con.Open(); 18 | var cmd = new SqlCommand(); 19 | cmd.Connection = con; 20 | 21 | // single proc (default) 22 | cmd.CommandText = "dbo.interop"; 23 | 24 | // Use the below for partitioned cache lookups by using multiple procs 25 | // cmd.CommandText = "dbo.interop_" + (i % 128 + 1).ToString() ; 26 | 27 | cmd.CommandType = CommandType.StoredProcedure; 28 | 29 | int cnt = 0; 30 | while (cnt < 50000) { 31 | cmd.ExecuteNonQuery(); 32 | cnt++; 33 | } 34 | } 35 | } 36 | catch(Exception) 37 | { 38 | Console.WriteLine($"Error with {endpoint}"); 39 | } 40 | }); 41 | /* 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 48 | SOFTWARE. 49 | 50 | This sample code is not supported under any Microsoft standard support program or service. 51 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 52 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 53 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 54 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 55 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 56 | */ 57 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/resolved.txt: -------------------------------------------------------------------------------- 1 | Slot_0 [count:1132435]: 2 | 3 | sqldk!XeSosPkg::spinlock_backoff::Publish 4 | sqldk!SpinlockBase::Sleep 5 | sqlmin!Spinlock<143,7,1>::SpinToAcquireWithExponentialBackoff 6 | sqlmin!lck_lockInternal 7 | sqlmin!MDL::LockGenericLocal 8 | sqlmin!MDL::LockGenericIdsLocal 9 | sqlmin!CMEDCacheEntryFactory::GetProxiedCacheEntryById 10 | sqlmin!CMEDProxyDatabase::GetOwnerByOwnerId 11 | sqllang!CSECAccessAuditBase::SetSecurable 12 | sqllang!CSECManager::_AccessCheck 13 | sqllang!CSECManager::AccessCheck 14 | sqllang!FHasEntityPermissionsWithAuditState 15 | sqllang!FHasEntityPermissions 16 | sqllang!CSQLObject::FPostCacheLookup 17 | sqllang!CSQLSource::Transform 18 | sqllang!CSQLSource::Execute 19 | sqllang!CStmtExecProc::XretLocalExec 20 | sqllang!CStmtExecProc::XretExecExecute 21 | sqllang!CXStmtExecProc::XretExecute 22 | sqllang!CMsqlExecContext::ExecuteStmts<1,1> 23 | sqllang!CMsqlExecContext::FExecute 24 | sqllang!CSQLSource::Execute 25 | sqllang!process_request 26 | sqllang!process_commands_internal 27 | 28 | Slot_1 [count:1046453]: 29 | 30 | sqldk!XeSosPkg::spinlock_backoff::Publish 31 | sqldk!SpinlockBase::Sleep 32 | sqlmin!Spinlock<143,7,1>::SpinToAcquireWithExponentialBackoff 33 | sqlmin!XactLockInfo::ReleaseUnconditionalSafe 34 | sqlmin!XactLockInfo::ReleaseAll 35 | sqlmin!XdesRMReadOnly::UnInit 36 | sqlmin!ReadOnlyXactImp::Rollback 37 | sqlmin!SqlAutoReadOnlyXact::Rollback 38 | sqlmin!SqlAutoReadOnlyXact::`scalar deleting destructor' 39 | sqllang!FHasEntityPermissionsWithAuditState 40 | sqllang!FHasEntityPermissions 41 | sqllang!CSQLObject::FPostCacheLookup 42 | sqllang!CSQLSource::Transform 43 | sqllang!CSQLSource::Execute 44 | sqllang!CStmtExecProc::XretLocalExec 45 | sqllang!CStmtExecProc::XretExecExecute 46 | sqllang!CXStmtExecProc::XretExecute 47 | sqllang!CMsqlExecContext::ExecuteStmts<1,1> 48 | sqllang!CMsqlExecContext::FExecute 49 | sqllang!CSQLSource::Execute 50 | sqllang!process_request 51 | sqllang!process_commands_internal 52 | sqllang!process_messages 53 | sqldk!SOS_Task::Param::Execute 54 | 55 | Slot_2 [count:1334]: 56 | 57 | sqldk!XeSosPkg::spinlock_backoff::Publish 58 | sqldk!SpinlockBase::Sleep 59 | sqldk!SpinlockBase::Backoff 60 | sqlmin!Spinlock<143,7,1>::SpinToAcquireWithExponentialBackoff 61 | sqlmin!lck_lockInternal 62 | sqlmin!MDL::LockGenericLocal 63 | sqlmin!MDL::LockGenericIdsLocal 64 | sqlmin!CMEDCacheEntryFactory::GetProxiedCacheEntryById 65 | sqlmin!CMEDProxyDatabase::GetOwnerByOwnerId 66 | sqllang!CSECAccessAuditBase::SetSecurable 67 | sqllang!CSECManager::_AccessCheck 68 | sqllang!CSECManager::AccessCheck 69 | sqllang!FHasEntityPermissionsWithAuditState 70 | sqllang!FHasEntityPermissions 71 | sqllang!CSQLObject::FPostCacheLookup 72 | sqllang!CSQLSource::Transform 73 | sqllang!CSQLSource::Execute 74 | sqllang!CStmtExecProc::XretLocalExec 75 | sqllang!CStmtExecProc::XretExecExecute 76 | sqllang!CXStmtExecProc::XretExecute 77 | sqllang!CMsqlExecContext::ExecuteStmts<1,1> 78 | sqllang!CMsqlExecContext::FExecute 79 | sqllang!CSQLSource::Execute 80 | sqllang!process_request 81 | 82 | Slot_3 [count:1276]: 83 | 84 | sqldk!XeSosPkg::spinlock_backoff::Publish 85 | sqldk!SpinlockBase::Sleep 86 | sqldk!SpinlockBase::Backoff 87 | sqlmin!Spinlock<143,7,1>::SpinToAcquireWithExponentialBackoff 88 | sqlmin!XactLockInfo::ReleaseUnconditionalSafe 89 | sqlmin!XactLockInfo::ReleaseAll 90 | sqlmin!XdesRMReadOnly::UnInit 91 | sqlmin!ReadOnlyXactImp::Rollback 92 | sqlmin!SqlAutoReadOnlyXact::Rollback 93 | sqlmin!SqlAutoReadOnlyXact::`scalar deleting destructor' 94 | sqllang!FHasEntityPermissionsWithAuditState 95 | sqllang!FHasEntityPermissions 96 | sqllang!CSQLObject::FPostCacheLookup 97 | sqllang!CSQLSource::Transform 98 | sqllang!CSQLSource::Execute 99 | sqllang!CStmtExecProc::XretLocalExec 100 | sqllang!CStmtExecProc::XretExecExecute 101 | sqllang!CXStmtExecProc::XretExecute 102 | sqllang!CMsqlExecContext::ExecuteStmts<1,1> 103 | sqllang!CMsqlExecContext::FExecute 104 | sqllang!CSQLSource::Execute 105 | sqllang!process_request 106 | sqllang!process_commands_internal 107 | sqllang!process_messages 108 | 109 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/setup.sql: -------------------------------------------------------------------------------- 1 | CREATE LOGIN [nonadmin] WITH PASSWORD=N'somepassword', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 2 | GO 3 | 4 | create database lockhashrepro 5 | go 6 | 7 | use lockhashrepro 8 | go 9 | 10 | ALTER DATABASE lockhashrepro ADD FILEGROUP imoltp CONTAINS MEMORY_OPTIMIZED_DATA 11 | go 12 | 13 | ALTER DATABASE lockhashrepro ADD FILE (name='imoltp_mod1', filename='c:\sqldb\lockhash_imoltp_sql2019ctp23') TO FILEGROUP imoltp 14 | go 15 | 16 | create table memopt( 17 | id bigint identity (1, 1) not null primary key nonclustered hash with (bucket_count = 1000) 18 | ) 19 | with (memory_optimized = on, durability = schema_only) 20 | go 21 | 22 | create or alter procedure dbo.native 23 | with native_compilation, schemabinding, execute as owner 24 | as 25 | begin atomic 26 | with (transaction isolation level=snapshot, language=N'us_english') 27 | 28 | declare @i bigint 29 | 30 | insert dbo.memopt default values 31 | select @i = scope_identity() 32 | 33 | delete dbo.memopt where id = @i 34 | 35 | end 36 | go 37 | 38 | create or alter procedure interop 39 | as 40 | begin 41 | exec dbo.native 42 | end 43 | go 44 | 45 | create user nonadmin from login [nonadmin] 46 | alter role db_datareader add member [nonadmin] 47 | alter role db_datawriter add member [nonadmin] 48 | GO 49 | 50 | grant execute on interop to nonadmin 51 | go 52 | 53 | grant execute on native to nonadmin 54 | go 55 | 56 | /* 57 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 58 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 59 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 60 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 61 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 62 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 63 | SOFTWARE. 64 | 65 | This sample code is not supported under any Microsoft standard support program or service. 66 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 67 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 68 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 69 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 70 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 71 | */ 72 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/LOCK_HASH/xe_session.sql: -------------------------------------------------------------------------------- 1 | IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='XESpins') 2 | DROP EVENT SESSION XESpins ON SERVER 3 | GO 4 | 5 | select * 6 | from sys.dm_xe_map_values 7 | where map_value = 'LOCK_HASH' 8 | 9 | CREATE EVENT SESSION XESpins ON SERVER 10 | ADD EVENT sqlos.spinlock_backoff 11 | ( 12 | ACTION (package0.callstack) 13 | WHERE type = 151 -- MAKE SURE YOU CHANGE THIS NUMBER! 14 | ) 15 | ADD TARGET package0.histogram 16 | ( 17 | SET source_type = 1, 18 | source = N'package0.callstack' 19 | ) 20 | WITH ( 21 | MAX_MEMORY = 32768 KB, 22 | EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, 23 | MAX_DISPATCH_LATENCY = 5 SECONDS, 24 | MAX_EVENT_SIZE = 0 KB, 25 | MEMORY_PARTITION_MODE = PER_CPU, 26 | TRACK_CAUSALITY = OFF, 27 | STARTUP_STATE = OFF 28 | ); 29 | GO 30 | 31 | alter event session XESpins on server state = start 32 | GO 33 | 34 | select event_session_address, target_name, execution_count, cast (target_data as XML) as SpinlockData 35 | from sys.dm_xe_session_targets xst 36 | inner join sys.dm_xe_sessions xs on (xst.event_session_address = xs.address) 37 | where xs.name = 'XESpins' 38 | GO 39 | 40 | -- alter event session XESpins on server state = stop 41 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/Memobj/TraceMemObj.sql: -------------------------------------------------------------------------------- 1 | IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='TraceMemObj') 2 | DROP EVENT SESSION [TraceMemObj] ON SERVER 3 | GO 4 | 5 | CREATE EVENT SESSION [TraceMemObj] ON SERVER 6 | ADD EVENT sqlos.page_allocated( 7 | ACTION(package0.callstack)) 8 | , 9 | ADD EVENT sqlos.page_freed( 10 | ACTION(package0.callstack)) 11 | ADD TARGET package0.histogram 12 | (SET source_type=1, 13 | source=N'package0.callstack') 14 | WITH (MAX_MEMORY=32768 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS, 15 | MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF) 16 | GO 17 | 18 | ALTER EVENT SESSION [TraceMemObj] on server state = start 19 | GO 20 | 21 | -- wait for problem to repro, and then run the below query. Save the XML data into a file. It can then be visualized using SQLCallStackResolver. 22 | select event_session_address, target_name, execution_count, cast (target_data as XML) as MemObjData 23 | from sys.dm_xe_session_targets xst 24 | inner join sys.dm_xe_sessions xs on (xst.event_session_address = xs.address) 25 | where xs.name = 'TraceMemObj' 26 | GO 27 | 28 | -- Then stop the session 29 | -- ALTER EVENT SESSION [TraceMemObj] on server state = stop 30 | 31 | /* 32 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 33 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 34 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 35 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 36 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 37 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 38 | SOFTWARE. 39 | 40 | This sample code is not supported under any Microsoft standard support program or service. 41 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 42 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 43 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 44 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 45 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 46 | */ 47 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/Memobj/memobjleak.linq: -------------------------------------------------------------------------------- 1 | 2 | System.Threading.Tasks 3 | 4 | 5 | Parallel.For(0, 500, 6 | () => 7 | { 8 | var con = new SqlConnection(@"Data Source=.\SQL2017;Initial Catalog=tempdb;Integrated Security=true;Connection Timeout=60"); 9 | con.Open(); 10 | 11 | return con; 12 | }, 13 | (counter, loopState, con) => 14 | { 15 | Console.WriteLine(counter); 16 | 17 | var cmd = new SqlCommand(); 18 | cmd.Connection = con; 19 | cmd.CommandText = @"exec sp_execute_external_script @language = N'R', @script = N'i <- 16';"; 20 | cmd.CommandType = CommandType.Text; 21 | 22 | cmd.ExecuteNonQuery(); 23 | 24 | return con; 25 | } 26 | ,(con) => { 27 | con.Close(); 28 | con.Dispose(); 29 | } 30 | ); 31 | 32 | /* 33 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 34 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 35 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 36 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 37 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 38 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 39 | SOFTWARE. 40 | 41 | This sample code is not supported under any Microsoft standard support program or service. 42 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 43 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 44 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 45 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 46 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 47 | */ 48 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/Memobj/monitor.sql: -------------------------------------------------------------------------------- 1 | select * from sys.dm_os_memory_objects where type = 'MEMOBJ_COMPILE_ADHOC' 2 | 3 | /* 4 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 5 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 6 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 7 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 8 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 9 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 10 | SOFTWARE. 11 | 12 | This sample code is not supported under any Microsoft standard support program or service. 13 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 14 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 15 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 16 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 17 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 18 | */ 19 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/OOM/CallStack.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 701 6 | 7 | 8 | 9 | 17 10 | 11 | 12 | 13 | 103 14 | 15 | 16 | 17 | false 18 | 19 | 20 | 21 | 2 22 | SERVER 23 | 24 | 25 | 26 | 0x0000009c 27 | BUFFER, DEFAULT_NO_USER, ERRORLOG, EVENTLOG 28 | 29 | 30 | 31 | false 32 | 33 | 34 | 35 | There is insufficient system memory in resource pool 'default' to run this query. 36 | 37 | 38 | 39 | sqllang.dll+0x00000000003877FC 40 | sqllang.dll+0x00000000000267EF 41 | sqllang.dll+0x00000000000258DF 42 | sqllang.dll+0x00000000016016EA 43 | sqllang.dll+0x00000000015FE3D8 44 | sqllang.dll+0x00000000015FE654 45 | sqllang.dll+0x0000000001600A28 46 | sqllang.dll+0x000000000160072A 47 | hkengine.dll+0x0000000000030B0D 48 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E9FC 49 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E653 50 | hkruntime.dll+0x00000000000112E8 51 | sqllang.dll+0x00000000015A7859 52 | sqllang.dll+0x00000000015ADDA3 53 | sqllang.dll+0x00000000004024A9 54 | sqllang.dll+0x0000000000D1D83D 55 | sqllang.dll+0x0000000000D1D241 56 | sqllang.dll+0x0000000000D19F98 57 | sqllang.dll+0x00000000000119CA 58 | sqllang.dll+0x0000000000012933 59 | sqllang.dll+0x0000000000012041 60 | sqllang.dll+0x000000000001A82B 61 | sqllang.dll+0x0000000000021542 62 | sqllang.dll+0x00000000000210A3 63 | 64 | 65 | 66 | 67 | 68 | 701 69 | 70 | 71 | 72 | 17 73 | 74 | 75 | 76 | 103 77 | 78 | 79 | 80 | false 81 | 82 | 83 | 84 | 2 85 | SERVER 86 | 87 | 88 | 89 | 0x0000009c 90 | BUFFER, DEFAULT_NO_USER, ERRORLOG, EVENTLOG 91 | 92 | 93 | 94 | false 95 | 96 | 97 | 98 | There is insufficient system memory in resource pool 'default' to run this query. 99 | 100 | 101 | 102 | sqllang.dll+0x00000000003877FC 103 | sqllang.dll+0x00000000000267EF 104 | sqllang.dll+0x00000000000258DF 105 | sqllang.dll+0x00000000016016EA 106 | sqllang.dll+0x00000000015FE3D8 107 | sqllang.dll+0x00000000015FE654 108 | sqllang.dll+0x0000000001600A28 109 | sqllang.dll+0x000000000160072A 110 | hkengine.dll+0x0000000000030B0D 111 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E9FC 112 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E653 113 | hkruntime.dll+0x00000000000112E8 114 | sqllang.dll+0x00000000015A7859 115 | sqllang.dll+0x00000000015ADDA3 116 | sqllang.dll+0x00000000004024A9 117 | sqllang.dll+0x0000000000D1D83D 118 | sqllang.dll+0x0000000000D1D241 119 | sqllang.dll+0x0000000000D19F98 120 | sqllang.dll+0x00000000000119CA 121 | sqllang.dll+0x0000000000012933 122 | sqllang.dll+0x0000000000012041 123 | sqllang.dll+0x000000000001A82B 124 | sqllang.dll+0x0000000000021542 125 | sqllang.dll+0x00000000000210A3 126 | 127 | 128 | 129 | 130 | 131 | 701 132 | 133 | 134 | 135 | 17 136 | 137 | 138 | 139 | 103 140 | 141 | 142 | 143 | false 144 | 145 | 146 | 147 | 2 148 | SERVER 149 | 150 | 151 | 152 | 0x0000009c 153 | BUFFER, DEFAULT_NO_USER, ERRORLOG, EVENTLOG 154 | 155 | 156 | 157 | false 158 | 159 | 160 | 161 | There is insufficient system memory in resource pool 'default' to run this query. 162 | 163 | 164 | 165 | sqllang.dll+0x00000000003877FC 166 | sqllang.dll+0x00000000000267EF 167 | sqllang.dll+0x00000000000258DF 168 | sqllang.dll+0x00000000016016EA 169 | sqllang.dll+0x00000000015FE3D8 170 | sqllang.dll+0x00000000015FE654 171 | sqllang.dll+0x0000000001600A28 172 | sqllang.dll+0x000000000160072A 173 | hkengine.dll+0x0000000000030B0D 174 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E9FC 175 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E653 176 | hkruntime.dll+0x00000000000112E8 177 | sqllang.dll+0x00000000015A7859 178 | sqllang.dll+0x00000000015ADDA3 179 | sqllang.dll+0x00000000004024A9 180 | sqllang.dll+0x0000000000D1D83D 181 | sqllang.dll+0x0000000000D1D241 182 | sqllang.dll+0x0000000000D19F98 183 | sqllang.dll+0x00000000000119CA 184 | sqllang.dll+0x0000000000012933 185 | sqllang.dll+0x0000000000012041 186 | sqllang.dll+0x000000000001A82B 187 | sqllang.dll+0x0000000000021542 188 | sqllang.dll+0x00000000000210A3 189 | 190 | 191 | 192 | 193 | 194 | 701 195 | 196 | 197 | 198 | 17 199 | 200 | 201 | 202 | 103 203 | 204 | 205 | 206 | false 207 | 208 | 209 | 210 | 2 211 | SERVER 212 | 213 | 214 | 215 | 0x0000009c 216 | BUFFER, DEFAULT_NO_USER, ERRORLOG, EVENTLOG 217 | 218 | 219 | 220 | false 221 | 222 | 223 | 224 | There is insufficient system memory in resource pool 'default' to run this query. 225 | 226 | 227 | 228 | sqllang.dll+0x00000000003877FC 229 | sqllang.dll+0x00000000000267EF 230 | sqllang.dll+0x00000000000258DF 231 | sqllang.dll+0x00000000016016EA 232 | sqllang.dll+0x00000000015FE3D8 233 | sqllang.dll+0x00000000015FE654 234 | sqllang.dll+0x0000000001600A28 235 | sqllang.dll+0x000000000160072A 236 | hkengine.dll+0x0000000000030B0D 237 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E9FC 238 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E653 239 | hkruntime.dll+0x00000000000112E8 240 | sqllang.dll+0x00000000015A7859 241 | sqllang.dll+0x00000000015ADDA3 242 | sqllang.dll+0x00000000004024A9 243 | sqllang.dll+0x0000000000D1D83D 244 | sqllang.dll+0x0000000000D1D241 245 | sqllang.dll+0x0000000000D19F98 246 | sqllang.dll+0x00000000000119CA 247 | sqllang.dll+0x0000000000012933 248 | sqllang.dll+0x0000000000012041 249 | sqllang.dll+0x000000000001A82B 250 | sqllang.dll+0x0000000000021542 251 | sqllang.dll+0x00000000000210A3 252 | 253 | 254 | 255 | 256 | 257 | 701 258 | 259 | 260 | 261 | 17 262 | 263 | 264 | 265 | 103 266 | 267 | 268 | 269 | false 270 | 271 | 272 | 273 | 2 274 | SERVER 275 | 276 | 277 | 278 | 0x0000009c 279 | BUFFER, DEFAULT_NO_USER, ERRORLOG, EVENTLOG 280 | 281 | 282 | 283 | false 284 | 285 | 286 | 287 | There is insufficient system memory in resource pool 'default' to run this query. 288 | 289 | 290 | 291 | sqllang.dll+0x00000000003877FC 292 | sqllang.dll+0x00000000000267EF 293 | sqllang.dll+0x00000000000258DF 294 | sqllang.dll+0x00000000016016EA 295 | sqllang.dll+0x00000000015FE3D8 296 | sqllang.dll+0x00000000015FE654 297 | sqllang.dll+0x0000000001600A28 298 | sqllang.dll+0x000000000160072A 299 | hkengine.dll+0x0000000000030B0D 300 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E9FC 301 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E653 302 | hkruntime.dll+0x00000000000112E8 303 | sqllang.dll+0x00000000015A7859 304 | sqllang.dll+0x00000000015ADDA3 305 | sqllang.dll+0x00000000004024A9 306 | sqllang.dll+0x0000000000D1D83D 307 | sqllang.dll+0x0000000000D1D241 308 | sqllang.dll+0x0000000000D19F98 309 | sqllang.dll+0x00000000000119CA 310 | sqllang.dll+0x0000000000012933 311 | sqllang.dll+0x0000000000012041 312 | sqllang.dll+0x000000000001A82B 313 | sqllang.dll+0x0000000000021542 314 | sqllang.dll+0x00000000000210A3 315 | 316 | 317 | 318 | 319 | 320 | 701 321 | 322 | 323 | 324 | 17 325 | 326 | 327 | 328 | 103 329 | 330 | 331 | 332 | false 333 | 334 | 335 | 336 | 2 337 | SERVER 338 | 339 | 340 | 341 | 0x0000009c 342 | BUFFER, DEFAULT_NO_USER, ERRORLOG, EVENTLOG 343 | 344 | 345 | 346 | false 347 | 348 | 349 | 350 | There is insufficient system memory in resource pool 'default' to run this query. 351 | 352 | 353 | 354 | sqllang.dll+0x00000000003877FC 355 | sqllang.dll+0x00000000000267EF 356 | sqllang.dll+0x00000000000258DF 357 | sqllang.dll+0x00000000016016EA 358 | sqllang.dll+0x00000000015FE3D8 359 | sqllang.dll+0x00000000015FE654 360 | sqllang.dll+0x0000000001600A28 361 | sqllang.dll+0x000000000160072A 362 | hkengine.dll+0x0000000000030B0D 363 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E9FC 364 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E653 365 | hkruntime.dll+0x00000000000112E8 366 | sqllang.dll+0x00000000015A7859 367 | sqllang.dll+0x00000000015ADDA3 368 | sqllang.dll+0x00000000004024A9 369 | sqllang.dll+0x0000000000D1D83D 370 | sqllang.dll+0x0000000000D1D241 371 | sqllang.dll+0x0000000000D19F98 372 | sqllang.dll+0x00000000000119CA 373 | sqllang.dll+0x0000000000012933 374 | sqllang.dll+0x0000000000012041 375 | sqllang.dll+0x000000000001A82B 376 | sqllang.dll+0x0000000000021542 377 | sqllang.dll+0x00000000000210A3 378 | 379 | 380 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/OOM/ERRORLOG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Demos/OOM/ERRORLOG -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/OOM/resolved.txt: -------------------------------------------------------------------------------- 1 | sqllang!XeSqlPkg::error_reported::Publish 2 | sqllang!ErrorReportedAutoPublish::Publish 3 | sqllang!CErrorReportingManager::CwchFormatAndPrint 4 | sqllang!HkError::HandleException 5 | sqllang!MapHkHResultToSqlError 6 | sqllang!MapHkHResultToSqlError 7 | sqllang!HkError::CreateErrorHelper 8 | sqllang!HkError::CreateError 9 | hkengine!HkRowAlloc 10 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E9FC 11 | xtp_p_5_597577167_185186125354548_1.dll+0x000000000000E653 12 | hkruntime!CAutoRefc::~CAutoRefc 13 | sqllang!HkProc::CallRuntimeExecutionFunction 14 | sqllang!HkProc::FExecuteInternal<0> 15 | sqllang!CSQLSource::Execute 16 | sqllang!CStmtExecProc::XretLocalExec 17 | sqllang!CStmtExecProc::XretExecExecute 18 | sqllang!CXStmtExecProc::XretExecute 19 | sqllang!CMsqlExecContext::ExecuteStmts<1,1> 20 | sqllang!CMsqlExecContext::FExecute 21 | sqllang!CSQLSource::Execute 22 | sqllang!process_request 23 | sqllang!process_commands_internal 24 | sqllang!process_messages 25 | 26 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/OOM/xe_session_701.sql: -------------------------------------------------------------------------------- 1 | CREATE EVENT SESSION [OOM] ON SERVER 2 | ADD EVENT sqlserver.error_reported( 3 | ACTION(package0.callstack) 4 | WHERE (error_number = 701 )) 5 | ADD TARGET package0.ring_buffer 6 | WITH (STARTUP_STATE=OFF) 7 | GO 8 | 9 | alter event session [OOM] on server state = start 10 | GO 11 | 12 | SELECT event_session_address, 13 | target_name, 14 | execution_count, 15 | CAST (target_data AS XML) AS CallStack 16 | FROM sys.dm_xe_session_targets AS xst 17 | INNER JOIN 18 | sys.dm_xe_sessions AS xs 19 | ON (xst.event_session_address = xs.address) 20 | WHERE xs.name = 'OOM'; 21 | GO 22 | 23 | -- alter event session [OOM] on server state = stop 24 | 25 | /* 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | 34 | This sample code is not supported under any Microsoft standard support program or service. 35 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 36 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 37 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 38 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 39 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 40 | */ 41 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_EX/Monitor.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Monitor TEMPDB PAGELATCH_EX contention by using the scripts below. 3 | 4 | [1] Query to confirm where the resource waits are maximum 5 | */ 6 | 7 | select count(*), wait_type, resource_description, sum(wait_duration_ms) 8 | from sys.dm_os_waiting_tasks 9 | group by wait_type, resource_description 10 | having count(*) > 2 11 | order by sum(wait_duration_ms) desc 12 | 13 | -- [2] XE session for capturing wait info histograms 14 | 15 | CREATE EVENT SESSION XEWaits ON SERVER 16 | ADD EVENT sqlos.wait_info( 17 | ACTION(package0.callstack) 18 | WHERE ( 19 | [wait_type]=(52) and duration > 0) -- please verify the number by querying select map_key from sys.dm_xe_map_values where map_value = 'pagelatch_ex' 20 | ) 21 | ADD TARGET package0.histogram 22 | (SET source_type=1, 23 | source=N'package0.callstack') 24 | WITH (MAX_MEMORY=32768 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS, 25 | MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF) 26 | GO 27 | 28 | alter event session XEWaits on server state = start 29 | GO 30 | 31 | -- once the problem is reproduced, get callstacks 32 | select event_session_address, target_name, execution_count, cast (target_data as XML) as WaitData 33 | from sys.dm_xe_session_targets xst 34 | inner join sys.dm_xe_sessions xs on (xst.event_session_address = xs.address) 35 | where xs.name = 'XEWaits' 36 | 37 | -- stop XE 38 | alter event session XEWaits on server state = STOP 39 | GO 40 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_EX/repro.sql: -------------------------------------------------------------------------------- 1 | /* 2 | SETUP 3 | ----- 4 | 5 | 0. Install SQL 2016 with SP1. Make sure you have sufficient number of TEMPDB data files, ideally 1 per logical CPU to avoid allocation bottlenecks. In my repro I had 8 data files for 8 logical CPUs. 6 | 7 | 1. Install RML tools from https://www.microsoft.com/en-us/download/details.aspx?id=4511. You may need the SQL 2012 native client as well () 8 | 9 | 2. Run the script shown below to create the procedure, user defined table type necessary for the repro 10 | */ 11 | 12 | USE tempdb 13 | GO 14 | 15 | CREATE TYPE [dbo].[keyholder] AS TABLE( 16 | [mycounter] [int] IDENTITY(1,1) NOT NULL, 17 | [somekey] [int] NOT NULL, 18 | PRIMARY KEY NONCLUSTERED 19 | ( 20 | [mycounter] ASC 21 | ) 22 | ) 23 | go 24 | 25 | create proc reproissue 26 | (@p1 dbo.keyholder readonly) 27 | as 28 | begin 29 | set nocount on; 30 | 31 | create table #t1 ([Guid] uniqueidentifier NOT NULL PRIMARY KEY); 32 | insert #t1 values (newid()) 33 | select * into #t2 from @p1; 34 | 35 | end 36 | GO 37 | 38 | /* 39 | 3. Repro the issue by running OSTRESS as given below. Adjust the values for n (256 is on a 8-logical CPU system; on a 32 CPU machine you can use -n1024. 40 | 41 | ostress -S. -dTEMPDB -Q"set nocount on; DECLARE @p1 dbo.keyholder; insert @p1 (somekey) values (1); exec reproissue @p1" -n256 -r1000000 42 | 43 | */ -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_UP/CacheDB_StoredProcs.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Demos/PAGELATCH_UP/CacheDB_StoredProcs.sql -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_UP/CacheDB_Tables.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Demos/PAGELATCH_UP/CacheDB_Tables.sql -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_UP/Monitor.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Monitor TEMPDB PAGELATCH_UP contention by using the scripts below. 3 | 4 | [1] Query to confirm where the resource waits are maximum 5 | */ 6 | 7 | select count(*), wait_type, resource_description, sum(wait_duration_ms) 8 | from sys.dm_os_waiting_tasks 9 | group by wait_type, resource_description 10 | having count(*) > 2 11 | order by sum(wait_duration_ms) desc 12 | 13 | -- [2] XE session for capturing wait info histograms 14 | 15 | CREATE EVENT SESSION XEWaits ON SERVER 16 | ADD EVENT sqlos.wait_info( 17 | ACTION(package0.callstack) 18 | WHERE ( 19 | [wait_type]=(51) and duration > 0) -- please verify the number by querying select map_key from sys.dm_xe_map_values where map_value = 'pagelatch_up' 20 | ) 21 | ADD TARGET package0.histogram 22 | (SET source_type=1, 23 | source=N'package0.callstack') 24 | WITH (MAX_MEMORY=32768 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS, 25 | MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF) 26 | GO 27 | 28 | alter event session XEWaits on server state = start 29 | GO 30 | 31 | -- once the problem is reproduced, get callstacks 32 | select event_session_address, target_name, execution_count, cast (target_data as XML) as WaitData 33 | from sys.dm_xe_session_targets xst 34 | inner join sys.dm_xe_sessions xs on (xst.event_session_address = xs.address) 35 | where xs.name = 'XEWaits' 36 | 37 | -- stop XE 38 | alter event session XEWaits on server state = STOP 39 | GO 40 | 41 | /* 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 48 | SOFTWARE. 49 | 50 | This sample code is not supported under any Microsoft standard support program or service. 51 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 52 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 53 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 54 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 55 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 56 | */ 57 | -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_UP/cleanupthread.sql: -------------------------------------------------------------------------------- 1 | while 1= 1 2 | begin 3 | waitfor delay '00:00:30' 4 | exec [dbo].[DeleteExpiredCacheItems] 5 | END 6 | 7 | /* 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 9 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 10 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 11 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 12 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 13 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 14 | SOFTWARE. 15 | 16 | This sample code is not supported under any Microsoft standard support program or service. 17 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 18 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 19 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 20 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 21 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 22 | */ -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_UP/repro.linq: -------------------------------------------------------------------------------- 1 | 2 | System.Threading.Tasks 3 | 4 | 5 | int numThreads = 500; 6 | ThreadPool.SetMinThreads(Environment.ProcessorCount * 25, Environment.ProcessorCount * 8); 7 | 8 | // Number of threads by default is 128 below. Please DECREASE or (rarely) increase as per your hardware setup 9 | Parallel.For(0, 128, i => 10 | { 11 | using (var con = new SqlConnection(@"Data Source=somesql;Initial Catalog=pfscontention;Integrated Security=false;user id=nonadmin;password=somepassword;Max Pool Size=500")) 12 | { 13 | string lob = new string('~', 500000); // 500KB string 14 | con.Open(); 15 | 16 | // store a value 17 | var cmdSet = new SqlCommand(); 18 | cmdSet.Connection = con; 19 | cmdSet.CommandText = "SetCacheItem"; 20 | cmdSet.CommandType = CommandType.StoredProcedure; 21 | cmdSet.Parameters.AddWithValue("@Key", Thread.CurrentThread.ManagedThreadId.ToString() + i.ToString()); 22 | cmdSet.Parameters.AddWithValue("@Value", System.Text.Encoding.Unicode.GetBytes(lob)); 23 | cmdSet.Parameters.AddWithValue("@Expiration", DateTime.Now.AddMinutes(5)); 24 | cmdSet.ExecuteNonQuery(); 25 | 26 | // setup the SqlCommand to get the value 27 | var cmdGet = new SqlCommand(); 28 | cmdGet.Connection = con; 29 | cmdGet.CommandText = "GetCacheItem"; 30 | cmdGet.CommandType = CommandType.StoredProcedure; 31 | cmdGet.Parameters.AddWithValue("@Key", Thread.CurrentThread.ManagedThreadId.ToString() + i.ToString()); 32 | SqlParameter outval = new SqlParameter("@Value", SqlDbType.VarBinary) 33 | { 34 | Direction = ParameterDirection.Output, 35 | Size = -1 36 | }; 37 | cmdGet.Parameters.Add(outval); 38 | 39 | int cnt = 0; 40 | long localsum = 0; 41 | while (cnt < 100000) 42 | { 43 | cmdGet.ExecuteNonQuery(); 44 | cnt++; 45 | } 46 | } 47 | }); 48 | /* 49 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 50 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 51 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 52 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 53 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 54 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 55 | SOFTWARE. 56 | 57 | This sample code is not supported under any Microsoft standard support program or service. 58 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 59 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 60 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 61 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 62 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 63 | */ -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/PAGELATCH_UP/setup.sql: -------------------------------------------------------------------------------- 1 | CREATE LOGIN [nonadmin] WITH PASSWORD=N'somepassword', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 2 | GO 3 | 4 | create database pfscontention 5 | go 6 | 7 | use pfscontention 8 | go 9 | 10 | ALTER DATABASE pfscontention ADD FILEGROUP imoltp CONTAINS MEMORY_OPTIMIZED_DATA 11 | go 12 | 13 | ALTER DATABASE pfscontention ADD FILE (name='imoltp_mod1', filename='f:\data\imoltp_pfs_contention_sql2016') TO FILEGROUP imoltp 14 | go 15 | 16 | create user nonadmin 17 | go 18 | 19 | /* 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | This sample code is not supported under any Microsoft standard support program or service. 29 | The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. 30 | In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts 31 | be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, 32 | business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability 33 | to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 34 | */ -------------------------------------------------------------------------------- /docs/SQLSat696/Demos/xe_wait_completed_0_132353446563350000.xel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arvindshmicrosoft/SQLCallStackResolver/3e1b22755545d4d613826d2dae2355bc2015b995/docs/SQLSat696/Demos/xe_wait_completed_0_132353446563350000.xel -------------------------------------------------------------------------------- /lastupdated.txt: -------------------------------------------------------------------------------- 1 | 2025-05-28 01:00 2 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # SQLCallStackResolver has moved 2 | This project is now moved under the [Microsoft GitHub organization](https://github.com/microsoft/SQLCallStackResolver). 3 | 4 | Please visit the new repo for the current source code for SQLCallStackResolver. 5 | 6 | This repo only contains some accompanying presentations that were done at conferences, and miscellaneous files, which are retained for historical reasons and backward compatibility. 7 | --------------------------------------------------------------------------------