在SQL Server啟動時自動執行預存程序。第1/2頁

來源:互聯網
上載者:User

sql Server提供了系統預存程序sp_procoption,這個預存程序可以用於當SQL Server服務啟動時指派一個或者多個預存程序自動執行。這是一個很不錯的選擇,它可以用於多種多樣的用途。比如,你可能在你的資料庫中有開銷很大的查詢,這個查詢在首次執行時會花費一些時間。通過使用sp_procoption,你可以在伺服器啟動時運行這個查詢以此來預先編譯執行計畫,由此,你的某個使用者就不會成為第一個運行這個特殊查詢的不幸的人。我曾經用這個功能建立了一個我自己寫的概要分析器伺服器端跟蹤的自動執行功能,這個跟蹤功能成為伺服器啟動時被設定成自動執行的預存程序的一部分。 複製代碼 代碼如下:sp_procoption Parameters
  exec sp_procoption @ProcName = ['stored procedure name'],
  @OptionName = 'STARTUP',
  @OptionValue = [on|off]

以下是sp_procoption預存程序參數的解釋:

  l 參數@ProcName的意思是明顯的,它是被標記成自動執行的過程的名稱。

  l 參數@OptionName是可選用項,唯一有效選項是STARTUP。

  l 參數@OptionValue切換自動執行的開與關。

  使用有特定限制的sp_procoption:

  l 你必須以系統管理員的身份登入伺服器並使用sp_procoption。

  l 你只能指派標準預存程序、擴充預存程序或者CLR預存程序來啟動。

  l 預存程序必須在主從資料庫上。

  l 預存程序不能要求任何輸入參數或者返回任何輸出參數。

  在下面的例子中,我建立一個預存程序,每次啟動我的SQL Server執行個體時,這個預存程序就自動執行。這個預存程序的目的是在記錄服務啟動時間的資料庫表中寫一行。通過這張資料庫表,我產生一個獲得伺服器正常已耗用時間的想法。以下的指令碼建立了一個新的資料庫,這個資料庫儲存了一張叫做SERVER_STARTUP_LOG的公製表。這張表保留了上次伺服器啟動的日期和時間。一旦建立了這個基本的架構,我就建立預存程序,在伺服器啟動時,這個預存程序將用於把日期和時間插入到表中。注意,預存程序是在主從資料庫上建立的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.