當前位置:首頁 » 存儲配置 » 存儲依賴源

存儲依賴源

發布時間: 2022-07-29 09:06:48

1. 如何查找存儲過程procere所依賴對象的有效性

1、ALTER PROC 期望找到現存的存儲過程,而CERATE不是。 2、ALTER PROC 保留了已經建立的存儲過程的任何許可權。它在系統對象中保留了相同的對象ID並允許保留依賴關系。例如,如果過程A調用過程B,並刪除和重新創建了過程B,那麼就不能再看到這兩...

2. 關於存儲過程中連接資料庫問題

存儲過程的概念
sql Server提供了一種方法,它可以將一些固定的操作集中起來由SQL Server資料庫伺服器來完成,以實現某個任務,這種方法就是存儲過程。
存儲過程是SQL語句和可選控制流語句的預編譯集合,存儲在資料庫中,可由應用程序通過一個調用執行,而且允許用戶聲明變數、有條件執行以及其他強大的編程功能。
在SQL Server中存儲過程分為兩類:即系統提供的存儲過程和用戶自定義的存儲過程。

可以出於任何使用SQL語句的目的來使用存儲過程,它具有以下優點:
可以在單個存儲過程中執行一系列SQL語句。
可以從自己的存儲過程內引用其他存儲過程,這可以簡化一系列復雜語句。
存儲過程在創建時即在伺服器上進行編譯,所以執行起來比單個SQL語句快,而且減少網路通信的負擔。
安全性更高。
創建存儲過程

在SQL Server中,可以使用三種方法創建存儲過程 :
①使用創建存儲過程向導創建存儲過程。
②利用SQL Server 企業管理器創建存儲過程。
③使用Transact-SQL語句中的CREATE PROCEDURE命令創建存儲過程。

下面介紹使用Transact-SQL語句中的CREATE PROCEDURE命令創建存儲過程
創建存儲過程前,應該考慮下列幾個事項:
①不能將 CREATE PROCEDURE 語句與其它 SQL 語句組合到單個批處理中。
②存儲過程可以嵌套使用,嵌套的最大深度不能超過32層。
③創建存儲過程的許可權默認屬於資料庫所有者,該所有者可將此許可權授予其他用戶。
④存儲過程是資料庫對象,其名稱必須遵守標識符規則。
⑤只能在當前資料庫中創建存儲過程。
⑥ 一個存儲過程的最大尺寸為128M。

使用CREATE PROCEDURE創建存儲過程的語法形式如下:

QUOTE:
CREATE PROC[EDURE]procere_name[;number][;number]
[{@parameter data_type}[VARYING][=default][OUTPUT]][,...n]
WITH
{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FOR REPLICATION]
AS sql_statement [ ...n ]

用CREATE PROCEDURE創建存儲過程的語法參數的意義如下:

procere_name:用於指定要創建的存儲過程的名稱。
number:該參數是可選的整數,它用來對同名的存儲過程分組,以便用一條 DROP PROCEDURE 語句即可將同組的過程一起除去。
@parameter:過程中的參數。在 CREATE PROCEDURE 語句中可以聲明一個或多個參數。
data_type:用於指定參數的數據類型。
VARYING:用於指定作為輸出OUTPUT參數支持的結果集。
Default:用於指定參數的默認值。
OUTPUT:表明該參數是一個返回參數。

例如:下面創建一個 簡單的存儲過程proctinfo,用於檢索產品信息。
USE Northwind
if exists(select name from sysobjects
where name='proctinfo' and type = 'p')
drop procere proctinfo
GO

create procere proctinfo
as
select * from procts
GO
通過下述sql語句執行該存儲過程:execute proctinfo
即可檢索到產品信息。

執行存儲過程

直接執行存儲過程可以使用EXECUTE命令來執行,其語法形式如下:
[[EXEC[UTE]]
{ [@return_status=]
{procere_name[;number]|@procere_name_var} [[@parameter=]{value|@variable[OUTPUT]|[DEFAULT]}
[,...n]
[ WITH RECOMPILE ]

使用 EXECUTE 命令傳遞單個參數,它執行 showind 存儲過程,以 titles 為參數值。showind 存儲過程需要參數 (@tabname),它是一個表的名稱。其程序清單如下:
EXEC showind titles
當然,在執行過程中變數可以顯式命名:
EXEC showind @tabname = titles
如果這是 isql 腳本或批處理中第一個語句,則 EXEC 語句可以省略:
showind titles或者showind @tabname = titles

下面的例子使用了默認參數
USE Northwind
GO
CREATE PROCEDURE insert_Procts_1
( @SupplierID_2 int,
@CategoryID_3 int,
@ProctName_1 nvarchar(40)='無')
AS INSERT INTO Procts
(ProctName,SupplierID,CategoryID)
VALUES
(@ProctName_1,@SupplierID_2,@CategoryID_3)
GO
exec insert_Procts_1 1,1
Select * from Procts where SupplierID=1 and CategoryID=1
GO

下面的例子使用了返回參數
USE Northwind
GO
CREATE PROCEDURE query_procts
( @SupplierID_1 int,
@ProctName_2 nvarchar(40) output)
AS
select @ProctName_2 = ProctName from procts
where SupplierID = @SupplierID_1

執行該存儲過程來查詢SupplierID為1的產品名:
declare @proct nvarchar(40)
exec query_procts 1,@proct output
select '產品名'= @proct
go

查看存儲過程
存儲過程被創建之後,它的名字就存儲在系統表sysobjects中,它的源代碼存放在系統表syscomments中。可以使用使用企業管理器或系統存儲過程來查看用戶創建的存儲過程。

使用企業管理器查看用戶創建的存儲過程

在企業管理器中,打開指定的伺服器和資料庫項,選擇要創建存儲過程的資料庫,單擊存儲過程文件夾,此時在右邊的頁框中顯示該資料庫的所有存儲過程。用右鍵單擊要查看的存儲過程,從彈出的快捷菜單中選擇屬性選項,此時便可以看到存儲過程的源代碼。

使用系統存儲過程來查看用戶創建的存儲過程

可供使用的系統存儲過程及其語法形式如下:
sp_help:用於顯示存儲過程的參數及其數據類型
sp_help [[@objname=] name]
參數name為要查看的存儲過程的名稱。
sp_helptext:用於顯示存儲過程的源代碼
sp_helptext [[@objname=] name]
參數name為要查看的存儲過程的名稱。
sp_depends:用於顯示和存儲過程相關的資料庫對象
sp_depends [@objname=]』object』
參數object為要查看依賴關系的存儲過程的名稱。
sp_stored_proceres:用於返回當前資料庫中的存儲過程列表

修改存儲過程

存儲過程可以根據用戶的要求或者基表定義的改變而改變。使用ALTER PROCEDURE語句可以更改先前通過執行 CREATE PROCEDURE 語句創建的過程,但不會更改許可權,也不影響相關的存儲過程或觸發器。其語法形式如下:
ALTERPROC[EDURE]procere_name[;number]
[{@parameterdata_type}
[VARYING][=default][OUTPUT]][,...n] [WITH
{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FOR REPLICATION]
AS
sql_statement [ ...n ]

重命名和刪除存儲過程

1. 重命名存儲過程
修改存儲過程的名稱可以使用系統存儲過程sp_rename,其語法形式如下:
sp_rename 原存儲過程名稱,新存儲過程名稱
另外,通過企業管理器也可以修改存儲過程的名稱。

刪除存儲過程

刪除存儲過程可以使用DROP命令,DROP命令可以將一個或者多個存儲過程或者存儲過程組從當前資料庫中刪除,其語法形式如下:
drop procere {procere} [,…n]
當然,利用企業管理器也可以很方便地刪除存儲過程。

存儲過程的重新編譯

在我們使用了一次存儲過程後,可能會因為某些原因,必須向表中新增加數據列或者為表新添加索引,從而改變了資料庫的邏輯結構。這時,需要對存儲過程進行重新編譯,SQL Server提供三種重新編譯存儲過程的方法 :
1、在建立存儲過程時設定重新編譯
語法格式:CREATE PROCEDURE procere_name WITH RECOMPILE AS sql_statement
2、在執行存儲過程時設定重編譯
語法格式: EXECUTE procere_name WITH RECOMPILE
3、通過使用系統存儲過程設定重編譯
語法格式為: EXEC sp_recompile OBJECT

系統存儲過程與擴展存儲過程

1.系統存儲過程
系統存儲過程存儲在master資料庫中,並以sp_為前綴,主要用來從系統表中獲取信息,為系統管理員管理SQL Server提供幫助,為用戶查看資料庫對象提供方便。比如用來查看資料庫對象信息的系統存儲過程sp_help、顯示存儲過程和其它對象的文本的存儲過程sp_helptext等。

2.擴展存儲過程:
擴展存儲過程以xp_為前綴,它是關系資料庫引擎的開放式數據服務層的一部分,其可以使用戶在動態鏈接庫(DLL)文件所包含的函數中實現邏輯,從而擴展了Transact-SQL的功能,並且可以象調用Transact-SQL過程那樣從Transact-SQL語句調用這些函數。
例: 利用擴展存儲過程xp_cmdshell為一個操作系統外殼執行指定命令串,並作為文本返回任何輸出。
執行代碼:
use master
exec xp_cmdshell 'dir *.exe'
執行結果返回系統目錄下的文件內容文本信息。

最後給大家舉一個例子:

QUOTE:
/**
1、 在Northwind資料庫中,創建一個帶查詢參數的存儲過程,
要求在輸入一個定購金額總額@total時,查詢超出該值的所
有產品的相關信息,包括產品名稱和供應商名稱、單位數量、
單價、以及該產品的定購金額總額,並通過一個輸出參數返回
滿足查詢條件的產品數
**/

IF exists (select * from SysObjects where name='more_than_total' and type='p')
drop procere more_than_total
go
CREATE PROCEDURE More_Than_Total
@total money = 0
AS
Declare @amount smallint
BEGIN
select distinct
P.proctName,
S.contactName,
P.UnitPrice

from Procts P inner join [order Details] O
on p.proctID=o.proctID inner join suppliers s
on p.supplierID=s.SupplierID
where O.proctID in
(select proctID
from [order Details]
group by proctId
having sum(quantity*unitprice)>@total
)
END
GO

3. 構建docker鏡像,download依賴包存儲問題

  1. Dockerfile 中每一條指令對應了image中的一層。從上到下,如果有一層發生變化,那麼這一層以後的層都要重新構建。 所以,在Docker 構建鏡像的最佳實踐,是要求把不經常變化的層放在Dockerfile 配置的最上層。 對於那些 一直不變的文件,應該做成base鏡像,構建新鏡像的時候從這個base鏡像開始構建。

  2. 可以嘗試一下添加一條指令,比如 RUN touch /home/test.txt ,看看從構建的鏡像運行的容器有沒有這個文件。

4. 我是搞伺服器存儲方面的,存儲的就是數據,而數據依賴資料庫,但是我從來沒有接觸過資料庫

在本機安裝一個Oracle就可以了,CPU 1GHz,內存2G就可以了。下載Oralce10g官方文檔,從概念入手,再到PL/SQL (建議),這樣容易些;資料庫管理、優化需要有足夠基礎,建議放到有一定基礎後再學習。

5. GBase 8c 有存儲依賴關系的位置嗎

有,通過pg_depend系統表。這是用於資料庫對象之間的依賴關系。從參考資料查到的,表列包括:classid(依賴對象所在的系統目錄OID)、objid(指定依賴對象的OID)、objsubid(對於一個表列,這里是列號)、refclassid(被引用對象所在的系統目錄的OID)、refobjid(指定被引用對象的OID)、refobjsubid(列號)、deptype(定義此依賴關系語義的一個代碼)。

6. 大數據中高效運算和低耗能存儲依賴以下哪些技術

主要由以下三點作用:

第一,對大數據的處理分析正成為新一代信息技術融合應用的結點。移動互聯網、物聯網、社交網路、數字家庭、電子商務等是新一代信息技術的應用形態,這些應用不斷產生大數據。雲計算為這些海量、多樣化的大數據提供存儲和運算平台。通過對不同來源數據的管理、處理、分析與優化,將結果反饋到上述應用中,將創造出巨大的經濟和社會價值。

第二,大數據是信息產業持續高速增長的新引擎。面向大數據市場的新技術、新產品、新服務、新業態會不斷涌現。在硬體與集成設備領域,大數據將對晶元、存儲產業產生重要影響,還將催生一體化數據存儲處理伺服器、內存計算等市場。在軟體與服務領域,大數據將引發數據快速處理分析、數據挖掘技術和軟體產品的發展。

第三,大數據利用將成為提高核心競爭力的關鍵因素。各行各業的決策正在從「業務驅動」 轉變「數據驅動」。
-

7. 簡述虛擬化存儲技術的三種實現方法及工作原理

從系統的觀點看,有三種主要的存儲虛擬化方法:

  1. 基於主機的虛擬存儲;

  2. 基於存儲設備的虛擬存儲;

  3. 基於網路的虛擬存儲。


方法1:基於主機的虛擬存儲

基於主機的虛擬存儲依賴於代理或管理軟體,它們安裝在一個或多個主機上,實現存儲虛擬化的控制和管理。由於控制軟體是運行在主機上,這就會佔用主機的處理時間。因此,這種方法的可擴充性較差,實際運行的性能不是很好。基於主機的方法也有可能影響到系統的穩定性和安全性,因為有可能導致不經意間越權訪問到受保護的數據。這種方法要求在主機上安裝適當的控制軟體,因此一個主機的故障可能影響整個SAN系統中數據的完整性。軟體控制的存儲虛擬化還可能由於不同存儲廠商軟硬體的差異而帶來不必要的互操作性開銷,所以這種方法的靈活性也比較差。

但是,因為不需要任何附加硬體,基於主機的虛擬化方法最容易實現,其設備成本最低。使用這種方法的供應商趨向於成為存儲管理領域的軟體廠商,而且目前已經有成熟的軟體產品。這些軟體可以提供便於使用的圖形介面,方便地用於SAN的管理和虛擬化,在主機和小型SAN結構中有著良好的負載平衡機制。從這個意義上看,基於主機的存儲虛擬化是一種性價比不錯的方法。


方法2:基於存儲設備的虛擬化

基於存儲設備的存儲虛擬化方法依賴於提供相關功能的存儲模塊。如果沒有第三方的虛擬軟體,基於存儲的虛擬化經常只能提供一種不完全的存儲虛擬化解決方案。對於包含多廠商存儲設備的SAN存儲系統,這種方法的運行效果並不是很好。依賴於存儲供應商的功能模塊將會在系統中排斥JBODS(Just a Bunch of Disks,簡單的硬碟組)和簡單存儲設備的使用,因為這些設備並沒有提供存儲虛擬化的功能。當然,利用這種方法意味著最終將鎖定某一家單獨的存儲供應商。

基於存儲的虛擬化方法也有一些優勢:在存儲系統中這種方法較容易實現,容易和某個特定存儲供應商的設備相協調,所以更容易管理,同時它對用戶或管理人員都是透明的。但是,我們必須注意到,因為缺乏足夠的軟體進行支持,這就使得解決方案更難以客戶化(customzing)和監控。


方法3:基於網路的虛擬存儲

基於網路的虛擬化方法是在網路設備之間實現存儲虛擬化功能,具體有下面幾種方式:

1. 基於互聯設備的虛擬化

基於互聯設備的方法如果是對稱的,那麼控制信息和數據走在同一條通道上;如果是不對稱的,控制信息和數據走在不同的路徑上。在對稱的方式下,互聯設備可能成為瓶頸,但是多重設備管理和負載平衡機制可以減緩瓶頸的矛盾。同時,多重設備管理環境中,當一個設備發生故障時,也比較容易支持伺服器實現故障接替。但是,這將產生多個SAN孤島,因為一個設備僅控制與它所連接的存儲系統。非對稱式虛擬存儲比對稱式更具有可擴展性,因為數據和控制信息的路徑是分離的。

基於互聯設備的虛擬化方法能夠在專用伺服器上運行,使用標准操作系統,例如Windows、Sun Solaris、Linux或供應商提供的操作系統。這種方法運行在標准操作系統中,具有基於主機方法的諸多優勢--易使用、設備便宜。許多基於設備的虛擬化提供商也提供附加的功能模塊來改善系統的整體性能,能夠獲得比標准操作系統更好的性能和更完善的功能,但需要更高的硬體成本。

但是,基於設備的方法也繼承了基於主機虛擬化方法的一些缺陷,因為它仍然需要一個運行在主機上的代理軟體或基於主機的適配器,任何主機的故障或不適當的主機配置都可能導致訪問到不被保護的數據。同時,在異構操作系統間的互操作性仍然是一個問題。

3. 基於路由器的虛擬化

基於路由器的方法是在路由器固件上實現存儲虛擬化功能。供應商通常也提供運行在主機上的附加軟體來進一步增強存儲管理能力。在此方法中,路由器被放置於每個主機到存儲網路的數據通道中,用來截取網路中任何一個從主機到存儲系統的命令。由於路由器潛在地為每一台主機服務,大多數控制模塊存在於路由器的固件中,相對於基於主機和大多數基於互聯設備的方法,這種方法的性能更好、效果更佳。由於不依賴於在每個主機上運行的代理伺服器,這種方法比基於主機或基於設備的方法具有更好的安全性。當連接主機到存儲網路的路由器出現故障時,仍然可能導致主機上的數據不能被訪問。但是只有聯結於故障路由器的主機才會受到影響,其他主機仍然可以通過其他路由器訪問存儲系統。路由器的冗餘可以支持動態多路徑,這也為上述故障問題提供了一個解決方法。由於路由器經常作為協議轉換的橋梁,基於路由器的方法也可以在異構操作系統和多供應商存儲環境之間提供互操作性。

8. 計算機內存儲器一般用什麼作為存儲介質

計算機內存中儲存器一般用ROM作為儲存介質。

隨機存取存儲器(英語:Random Access Memory,縮寫:RAM),也叫主存,是與CPU直接交換數據的內部存儲器。它可以隨時讀寫,而且速度很快,通常作為操作系統或其他正在運行中的程序的臨時數據存儲介質。

RAM工作時可以隨時從任何一個指定的地址寫入(存入)或讀出(取出)信息。它與ROM的最大區別是數據的易失性,即一旦斷電所存儲的數據將隨之丟失。RAM在計算機和數字系統中用來暫時存儲程序、數據和中間結果。

(8)存儲依賴源擴展閱讀

RAM的特點為:

1、隨機存取

所謂「隨機存取」,指的是當存儲器中的數據被讀取或寫入時,所需要的時間與這段信息所在的位置或所寫入的位置無關。相對的,讀取或寫入順序訪問存儲設備中的信息時,其所需要的時間與位置就會有關系。它主要用來存放操作系統、各種應用程序、數據等。

當RAM處於正常工作時,可以從RAM中讀出數據,也可以往RAM中寫入數據。與ROM相比較,RAM的優點是讀/寫方便、使用靈活,特別適用於經常快速更換數據的場合。

2、易失性

當電源關閉時,RAM不能保留數據。如果需要保存數據,就必須把它們寫入一個長期的存儲設備中(例如硬碟)。

RAM的工作特點是通電後,隨時可在任意位置單元存取數據信息,斷電後內部信息也隨之消失。

3、對靜電敏感

正如其他精細的集成電路,隨機存取存儲器對環境的靜電荷非常敏感。靜電會干擾存儲器內電容器的電荷,引致數據流失,甚至燒壞電路。故此觸碰隨機存取存儲器前,應先用手觸摸金屬接地。

4、訪問速度

現代的隨機存取存儲器幾乎是所有訪問設備中寫入和讀取速度最快的,存取延遲和其他涉及機械運作的存儲設備相比,也顯得微不足道。

5、需要刷新(再生)

現代的隨機存取存儲器依賴電容器存儲數據。電容器充滿電後代表1(二進制),未充電的代表0。由於電容器或多或少有漏電的情形,若不作特別處理,數據會漸漸隨時間流失。

刷新是指定期讀取電容器的狀態,然後按照原來的狀態重新為電容器充電,彌補流失了的電荷。需要刷新正好解釋了隨機存取存儲器的易失性。

熱點內容
光遇安卓音韻季有什麼 發布:2024-10-06 05:06:51 瀏覽:76
apk腳本破解 發布:2024-10-06 04:33:23 瀏覽:51
數模編程 發布:2024-10-06 04:04:43 瀏覽:16
雷霆一擊伺服器搭建 發布:2024-10-06 03:58:14 瀏覽:500
導演腳本 發布:2024-10-06 03:37:34 瀏覽:566
施耐德有密碼程序如何打開 發布:2024-10-06 03:37:00 瀏覽:893
解壓縮文件修復 發布:2024-10-06 03:31:17 瀏覽:705
如何設置休眠時不需要開機密碼 發布:2024-10-06 03:03:25 瀏覽:233
密碼工作三個事關的內容是什麼 發布:2024-10-06 02:39:44 瀏覽:426
21款昂科威哪個配置好 發布:2024-10-06 02:20:39 瀏覽:839