SQLSERVER中的假脱机
SQLSERVER中的假脱机 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老师写的《SQLSERVER企业级平台管理实践》里提到了一下假脱机 在SQLSERVER
SQLSERVER中的假脱机
我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么?
这几天在家里研究了一下,收集了很多网上的资料
假脱机是中文的翻译,而英文的名字叫做 spool
在徐老师写的《SQLSERVER企业级平台管理实践》里提到了一下假脱机
在SQLSERVER I/O问题的那一节
在性能监视器里,有一个计数器“worktables/sec” :
每秒创建的工作表数。例如,工作表可用于存储查询假脱机(query spool),LOB变量,XML变量,表变量,游标的临时结果
在《剖析SQLServer执行计划》里也提到了假脱机
(13) 有时查询优化器需要在tempdb数据库中建立临时工作表。如果是这样的话
就意味着图形执行计划中有标识成Index Spool, Row Count Spool或者Table Spool的图标。
任何时候,使用到工作表一般都会防碍到性能,因为需要额外的I/O开销来维护这个工作表。
之前本人也写过一篇文章:对于索引假脱机的一点理解
写这篇文章的时候当时还是对假脱机一知半解
假脱机在MSDN中的执行计划中的逻辑运算符和物理运算符中提到了几个假脱机相关的运算符(详见本文最后面)
Eager Spool
Lazy Spool
Index Spool (有时候也叫 Nonclustered Index Spool)
Row Count Spool
Spool
Table Spool
Window Spool
Spool, Table Spool, Index Spool, Window Spool 和 Row Count Spool是物理运算符
Eager Spool 和 Lazy Spool是逻辑运算符
这些运算符描述了假脱机是如何工作的,在这里你需要非常清楚逻辑运算符和物理运算符的区别
MSDN中的解释:
逻辑运算符:逻辑运算符描述了用于处理语句的关系代数操作。 换言之,逻辑运算符从概念上描述了需要执行哪些操作。
物理运算符:物理运算符实施由逻辑运算符描述的操作。 每个物理运算符都是一个执行某项操作的对象或例程。
例如,某些物理运算符可访问表、索引或视图中的列或行。 其他物理运算符执行其他操作,如计算、聚合、数据完整性检查或联接。
物理运算符具有与其关联的开销。
注意:窗口假脱机是没有Eager Spool和Lazy Spool之分的,因为他既是逻辑运算符也是物理运算符!!
简单来讲SQLSERVER做某项操作由物理运算符来做,而具体怎样做就由逻辑运算符来决定
打个比方:小明在佛山,想去广州,小明可以选择开汽车去广州,踩自行车去广州,骑摩托车去广州(相当于做某项操作)
小明可以根据当时的路况:
(1)踩自行车:如果道路比较拥堵,踩自行车不用怕,,最多的车也能过,他可以选择使劲的踩(Eager Spool)或者慢慢踩(Lazy Spool)
(2)开汽车:如果道路比较畅通,他可以选择开快一点(Eager Spool)或者开慢一点(Lazy Spool)
(3)骑摩托车:如果道路比较拥堵,他可以选择抄小路,然后开快一点(Eager Spool)或者开慢一点(Lazy Spool)
不知道这个比喻大家明白没有,不过本人也找不到更好的比喻~
在图形执行计划中,你会发现Table Spool 有时候会带有 Eager Spool ,有时候有会带有 Lazy Spool
因为Table Spool是物理运算符,Eager Spool和Eager Spool 是逻辑运算符
Table Spool(表假脱机)
SQL脚本如下:
表假脱机 Eager Spool
Sales (EmpId INT, Yr INT, Sales MONEY) 5 INSERT Sales VALUES(1, 2005, 12000) 6 INSERT Sales VALUES(1, 2006, 18000) 7 INSERT Sales VALUES(1, 2007, 25000) 8 INSERT Sales VALUES(2, 2005, 15000) 9 INSERT Sales VALUES(2, 2006, 6000) 10 INSERT Sales VALUES(3, 2006, 20000) 11 INSERT Sales VALUES(3, 2007, 24000) .EmpId, Yr, SUM(Sales) AS Sales 17 FROM Sales EmpId, Yr WITH CUBE

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

匯入步驟如下:將 MDF 檔案複製到 SQL Server 的資料目錄(通常為 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,開啟資料庫並選擇「附加」。點選“新增”按鈕,選擇 MDF 檔案。確認資料庫名稱,點選確定按鈕即可。

對於 SQL Server 資料庫中已存在同名對象,需要採取下列步驟:確認物件類型(表格、檢視、預存程序)。如果物件為空,可使用 IF NOT EXISTS 跳過建立。如果物件有數據,使用不同名稱或修改結構。使用 DROP 刪除現有物件(謹慎操作,建議備份)。檢查架構更改,確保沒有引用刪除或重新命名的物件。

若要查看 SQL Server 連接埠號碼:開啟 SSMS,連線到伺服器。在物件資源管理器中找到伺服器名稱,右鍵單擊它,然後選擇“屬性”。在「連線」標籤中,查看「TCP 連接埠」欄位。

若誤刪 SQL Server 資料庫,可採取下列步驟還原:停止資料庫活動;備份日誌檔案;檢查資料庫日誌;復原選項:從備份還原;從交易日誌還原;使用 DBCC CHECKDB;使用第三方工具。請定期備份資料庫並啟用交易日誌以防止資料遺失。

SQL Server 資料庫檔案通常儲存在下列預設位置:Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data可透過修改資料庫檔案路徑設定來自訂資料庫檔案位置。

當 SQL Server 服務無法啟動時,可採取下列步驟解決:檢查錯誤日誌以確定根本原因。確保服務帳戶具有啟動服務的權限。檢查依賴項服務是否正在執行。禁用防毒軟體。修復 SQL Server 安裝。如果修復不起作用,重新安裝 SQL Server。

最近許多小夥伴們常常遇到磁碟管理工具並未顯示「離線」及「聯機」兩個選項的話,以為不論是連接到電腦上的外部硬碟裝置還是內建的C或是D盤,都無法要進行此操作,其實解決方法也是十分簡單。 win10家庭版磁碟管理沒有離線選項解決方案1、首先我們點擊電腦的工作列開始按鈕。 2、隨後我們在搜尋框中輸入服務的關鍵字,然後選擇我們需要的選項。 3.進入相對應的選項介面以後,我們使用滑鼠雙擊OfflineFiles的選項。 4.隨後進入OfflineFiles的介面以後,我們在此點選服務狀態的啟動按鈕。 5.最後我們

問題發現這次使用的是SqlServer資料庫,之前並沒有使用過,但是問題不大,我按照需求文檔的步驟連接好SqlServer之後,啟動SpringBoot項目,發現了一個報錯,如下:剛開始我以為是SqlServer連接問題呢,於是便去查看資料庫,發現資料庫一切正常,我首先第一時間問了我的同事,他們是否有這樣的問題,發現他們並沒有,於是我便開始了我最拿手的環節,面向百度程式設計.開始解決具體報錯資訊是這樣,於是我便開始了百度報錯:ERRORc.a.d.p.DruidDataSource$CreateCo
