หลังจากอัปเกรด SQL Server 2014 ถึง 2016 เซิร์ฟเวอร์จะทำการรีเซ็ตแผนการดำเนินการและdm*
มุมมองแคช(เช่นdm_exec_query_stats
) เป็นต้นทุก ๆ สองสามชั่วโมง
ราวกับว่ามีคนดำเนินการDBCC FREEPROCCACHE
และDBCC DROPCLEANBUFFERS
ด้วยตนเอง (ยกเว้นไม่มีใครทำมันจะเกิดขึ้นโดยอัตโนมัติ)
ฐานข้อมูลเดียวกันทำงานได้ดีบน SQL Server 2014 และ Windows Server 2012 ทุกอย่างดำเนินไปทางใต้หลังจากย้ายไปยัง SQL Server 2016 (และ Windows Server 2016)
สิ่งที่ผมตรวจสอบ: ฐานข้อมูลไม่ได้มี "รถยนต์ใกล้ธง" เซิร์ฟเวอร์ SQL ถูกad hoc optimized
ตั้งค่าเป็นtrue
(ฉันคิดว่ามันจะช่วยไม่ได้) "ที่เก็บแบบสอบถาม" คือ "ปิด" เซิร์ฟเวอร์มีหน่วยความจำ 16 GB
ไม่มีประโยชน์ใน "บันทึกของเซิร์ฟเวอร์ SQL" เพียงแค่ข้อความสำรองรายสัปดาห์ ...
ฉันตรวจสอบบทความนี้ด้วยhttps://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-set-options (เลื่อนลงไปที่ส่วน "ตัวอย่าง" และด้านบนขวา มัน) มีรายการของสถานการณ์เมื่อมีการล้างแผนโดยอัตโนมัติ ไม่มีของเหล่านั้นใช้
UPDATE:
น่าเสียดายที่ไม่มีข้อเสนอแนะใด ๆ ช่วย ให้สิทธิ์ LPIM ตรวจจับและแก้ไขคิวรีที่ไม่มีพารามิเตอร์ซึ่งสร้างแผนจำนวนมากสำหรับเคียวรีเดียวกันลด "หน่วยความจำเซิร์ฟเวอร์สูงสุด" ... ลดจำนวนแผนเรื่อย ๆ จากสองถึงสามชั่วโมงทุก 5-10 นาที หากเซิร์ฟเวอร์นั้น "ตกอยู่ภายใต้ความกดดันของหน่วยความจำ" ทำไมเวอร์ชั่น 2014 ถึงทำงานได้ดีบนเครื่องเดียวกัน
นี่คือเอาต์พุต sp_Blitz ตามที่ร้องขอ
**Priority 10: Performance**:
- Query Store Disabled - The new SQL Server 2016 Query Store feature has not been enabled on this database.
* xxx
**Priority 50: Server Info**:
- Instant File Initialization Not Enabled - Consider enabling IFI for faster restores and data file growths.
**Priority 100: Performance**:
- Resource Governor Enabled - Resource Governor is enabled. Queries may be throttled. Make sure you understand how the Classifier Function is configured.
**Priority 120: Query Plans**:
- Implicit Conversion Affecting Cardinality - One of the top resource-intensive queries has an implicit conversion that is affecting cardinality estimation.
*
- Missing Index - One of the top resource-intensive queries may be dramatically improved by adding an index.
*
- RID or Key Lookups - One of the top resource-intensive queries contains RID or Key Lookups. Try to avoid them by creating covering indexes.
*
**Priority 170: File Configuration**:
- System Database on C Drive
* master - The master database has a file on the C drive. Putting system databases on the C drive runs the risk of crashing the server when it runs out of space.
* model - The model database has a file on the C drive. Putting system databases on the C drive runs the risk of crashing the server when it runs out of space.
* msdb - The msdb database has a file on the C drive. Putting system databases on the C drive runs the risk of crashing the server when it runs out of space.
**Priority 200: Backup**:
- MSDB Backup History Not Purged msdb - Database backup history retained back to Jun 10 2017 9:47PM
**Priority 200: Informational**:
- Backup Compression Default Off - Uncompressed full backups have happened recently, and backup compression is not turned on at the server level. Backup compression is included with SQL Server 2008R2 & newer, even in Standard Edition. We recommend turning backup compression on by default so that ad-hoc backups will get compressed.
**Priority 200: Non-Default Server Config**:
- Agent XPs - This sp_configure option has been changed. Its default value is 0 and it has been set to 1.
- max server memory (MB) - This sp_configure option has been changed. Its default value is 2147483647 and it has been set to 15000.
- optimize for ad hoc workloads - This sp_configure option has been changed. Its default value is 0 and it has been set to 1.
- show advanced options - This sp_configure option has been changed. Its default value is 0 and it has been set to 1.
- xp_cmdshell - This sp_configure option has been changed. Its default value is 0 and it has been set to 1.
**Priority 200: Performance**:
- Buffer Pool Extensions Enabled - You have Buffer Pool Extensions enabled, and one lives here: Z:\sql_buffer_pool.BPE. It's currently 60.00000000000 GB. Did you know that BPEs only provide single threaded access 8KB (one page) at a time?
- cost threshold for parallelism - Set to 5, its default value. Changing this sp_configure setting may reduce CXPACKET waits.
**Priority 240: Wait Stats**:
- No Significant Waits Detected - This server might be just sitting around idle, or someone may have cleared wait stats recently.
**Priority 250: Informational**:
- SQL Server Agent is running under an NT Service account - I'm running as NT Service\SQLSERVERAGENT. I wish I had an Active Directory service account instead.
- SQL Server is running under an NT Service account - I'm running as NT Service\MSSQLSERVER. I wish I had an Active Directory service account instead.
**Priority 250: Server Info**:
- Default Trace Contents - The default trace holds 125 hours of data between Aug 19 2017 11:55AM and Aug 24 2017 4:59PM. The default trace files are located in: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log
- Hardware - Logical processors: 2. Physical memory: 15GB.
- Hardware - NUMA Config - Node: 0 State: ONLINE Online schedulers: 2 Offline schedulers: 0 Processor Group: 0 Memory node: 0 Memory VAS Reserved GB: 29
- Locked Pages In Memory Enabled - You currently have 12.02534484863 GB of pages locked in memory.
- Memory Model Unconventional - Memory Model: LOCK_PAGES
- Server Last Restart - Aug 20 2017 12:32PM
- Server Name - xx
- Services
- Service: SQL Full-text Filter Daemon Launcher (MSSQLSERVER) runs under service account NT Service\MSSQLFDLauncher. Last startup time: not shown.. Startup type: Manual, currently Running.
- Service: SQL Server (MSSQLSERVER) runs under service account NT Service\MSSQLSERVER. Last startup time: Aug 20 2017 12:32PM. Startup type: Automatic, currently Running.
- Service: SQL Server Agent (MSSQLSERVER) runs under service account NT Service\SQLSERVERAGENT. Last startup time: not shown.. Startup type: Automatic, currently Running.
- SQL Server Last Restart - Aug 20 2017 12:33PM
- SQL Server Service - Version: 13.0.4446.0. Patch Level: SP1. Edition: Enterprise Edition (64-bit). AlwaysOn Enabled: 0. AlwaysOn Mgr Status: 2
- Virtual Server - Type: (HYPERVISOR)
- Windows Version - You're running a pretty modern version of Windows: Server 2012R2 era, version 6.3
**Priority 254: Rundate**:
- Captain's log: stardate something and something...