2011年5月26日 星期四

停用外部索引鍵(FK)

 

--測試將停用外部索引鍵,並建立一個在父資料表未有的 RT_UID 資料
ALTER TABLE DBO.MY_CHILD_TABLE NOCHECK CONSTRAINT FK_MY_CHILD_TABLE_MY_ROOT_TABLE

SQL - 停用外部索引鍵(FK) @ 張小呆的碎碎唸 :: 隨意窩 Xuite日誌

資料庫索引-叢集索引

 

根據叢集索引鍵的順序來排序和儲存資料表或檢視的資料列。叢集索引將實作成 B 型樹狀索引結構,以根據它們的叢集索引鍵值快速地擷取資料列。

資料庫索引的重要性 - 博客文库 - 博客园

2011年5月17日 星期二

交易式複寫效能的調整與最佳化

 

交易式複寫是 Microsoft® SQL Server™ 2000 所提供的一種複寫類型,可用來在分散式環境中的伺服器之間以增量的方式傳播資料修改。

交易式複寫可用於許多不同的應用模式,從報告伺服器和資料倉儲環境,到 Web 伺服器和電子商務應用程式,都在應用的範圍內。在網際網路上,有許多執行 SQL Server 的重要網站都是使用交易式複寫,包括 MSN.com、Passport.com、BarnesandNoble.com 和 Buy.com。

交易式複寫是既可調整又可靠的方案,可在高效能的環境中散發資料。本文會檢視交易式複寫中的效能,並示範幾種可改進應用程式效能的方式。本文是以使用不同硬體組態和複寫環境所做的測試結果作為基礎,並根據測試結果提供幾方面的建議,例如套用初始快照集、最佳化複寫設定和複寫延展性 (Scalability)。

交易式複寫效能的調整與最佳化

2011年5月1日 星期日

SQL Server 完整備份、差異備份、交易記錄備份

 

完整備份

  • 同時會備份 資料檔 ( *.mdf ) 與 交易記錄檔 ( *.ldf )
  • 要做任何差異備份交易記錄備份之前,一定要做一次完整備份

差異備份

  • 只會備份 資料檔 ( *.mdf ),但僅有最近一次完整備份備份當下這段時間所異動的資料
  • 差異備份不會備份任何交易記錄檔備份的內容只會拿目前資料檔最近一次完整備份的資料內容做差異比對

交易記錄檔備份

  • 只會備份 交易記錄檔 ( *.ldf )
  • 若透過 SSMS 操作,在預設的情況下會自動截斷交易記錄
  • 交易記錄備份紀錄序號 (LSN) 是從資料庫建立開始就一直連貫的

The Will Will Web | 觀念釐清:SQL Server 完整備份、差異備份、交易記錄備份

資料庫的正規化 - 功能相依

 

:「一般能當主鍵值的屬性,它應該要有一個特色,那就是它可以唯一決定所有其他的屬性,換句話說,所有其他的屬性就會功能相依於主鍵了。」

第七章、資料庫的正規化

串聯式參考完整性的條件約束

 

ON DELETE CASCADE

指定若有人嘗試刪除包含了索引鍵的資料列,而該索引鍵又被其他資料表的現有資料列中的外部索引鍵所參考時,包含這些外部索引鍵的所有資料列也會被刪除

串聯式參考完整性的條件約束

SQL 笛卡兒乘積

 

交叉連接為兩個資料表間的乘積 (Cartesian product),兩個資料表在結合時,不指定任何條件,即將兩個資料表中所有的可能排列組合出來,以下例而言 CROSS JOIN 出來的結果資料列數為 3×5=15 筆,因此,當有WHERE、ON、USING條件時不建議使用。

CROSS JOIN 語法 (SQL CROSS JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
CROSS JOIN table_name2;
SELECT table_column1, table_column2···
FROM table_name1, table_name2;

SQL 教學 » CROSS JOIN - SQL Tutorial

SQL 子查詢

 

子查詢的語法如下:

SELECT "欄位1"
FROM "表格"
WHERE "欄位2" [比較運算素]
(SELECT "欄位1"
FROM "表格"
WHERE [條件])

SQL 子查詢

資料正規化

 

何謂正規

 將表格細分成多個更小的表格,直到每個表格只描述一種事實為止,這一連串的調整過程就稱為資料正規(Normalization)。

資料正規化

char 和 varchar (Transact-SQL)

 

char [ ( n ) ]

這些是長度為 n 位元組的固定長度非 Unicode 字元資料。n 必須是 1 到 8,000 的值。儲存體大小是 n 位元組。char 的 ISO 同義字是 character。

varchar [ ( n | max ) ]

可變長度,非 Unicode 字元資料。n 可以是 1 到 8,000 的值。max 表示最大儲存體大小是 2^31-1 位元組。儲存體大小是輸入資料的實際長度再加上 2 位元組。輸入的資料長度可以是 0 字元。varchar 的 ISO 同義字是 char varying 或 character varying。

char 和 varchar (Transact-SQL)

CREATE USER

 

A. 建立資料庫使用者

下列範例會先建立一個具有密碼且名叫 AbolrousHazem 的伺服器登入,然後在 AdventureWorks2008R2 建立一個對應的資料庫使用者 AbolrousHazem。

複製

CREATE LOGIN AbolrousHazem 
WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks2008R2;
CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
GO

CREATE USER (Transact-SQL)

SQL DROP VIEW Statement

 

What is the SQL DROP VIEW Statement?

The SQL DROP VIEW statement is the SQL command that removes an entire SQL view.

SQL DROP VIEW Statement

2011年4月30日 星期六

使用外部聯結

 

假設 Product 資料表和 ProductReview 資料表以它們的 ProductID 資料行進行聯結。結果只會顯示出已撰寫評論的產品。

若想納入所有的產品,而不管是否已撰寫了評論,可使用 ISO 左外部聯結。以下為此查詢:

複製

USE AdventureWorks2008R2;
GO
SELECT p.Name, pr.ProductReviewID
FROM Production.Product p
LEFT OUTER JOIN Production.ProductReview pr
ON p.ProductID = pr.ProductID

使用外部聯結

索引類型-非叢集索引

 

非叢集索引可在具有叢集索引的資料表或檢視中、或是堆積中定義。非叢集索引中的每個索引資料列都含有非叢集鍵值與資料列定位器。此定位器指向含有鍵值之叢集索引或堆積中的資料列。索引中的資料列會依據索引鍵值的順序儲存,但除非叢集索引建立在資料表中,否則資料列不一定會依循任何特定的順序排列

索引類型

WITH GRANT OPTION

 

如果聲明了 WITH GRANT OPTION,那麼權限的受予者也可以賦予別人。

GRANT

COUNT(*)

 

3> select COUNT(*) from sales;

COUNT(*) returns the total count of all records (rows) in the column, including NULL values of selected records by the query. : Count « Aggregate Functions « SQL Server / T-SQL Tutorial

SQL ALTER TABLE

 

ALTER table customer add Gender char(1)

SQL ALTER TABLE

SQL UPDATE

 

UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "Jan-08-1999"

SQL UPDATE

SQL UNIQUE Constraint

 

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

SQL UNIQUE Constraint

外部索引鍵

外部索引鍵 --- 在某資料表中的外部索引鍵(foreign key #)必須是另一資料表的主索引鍵,以建立此兩個資料表的關係。 外部索引鍵的值不一定是要唯一的,此點與主索引鍵不同。 兩個外部索引鍵也可以組合而成為另一資料表的主索引鍵,例如: 「成績資料表」之「學號」與「課號」兩個外部索引鍵合而為一個主索引鍵。

外部索引鍵 - Google 搜尋

主索引鍵

 

定義主索引鍵,強制使用輸入到指定不允許 null 值的資料行值的唯一性。如果您定義資料庫中資料表的主索引鍵,可以將該資料表與其他資料表關聯,這樣可以減低重複資料的需求。資料表只能有一個主索引鍵。

HOW TO:建立主索引鍵

ALTER TABLE

 

SQL Server:
ALTER TABLE Customer ADD PRIMARY KEY (SID);

SQL 主鍵

CREATE TABLE

 

SQL Server:
CREATE TABLE Customer
(SID integer PRIMARY KEY,
Last_Name varchar(30),
First_Name varchar(30));

SQL 主鍵

名詞解釋

 

SQL Server 2005 線上叢書 (2008 年 11 月)

名詞解釋

名詞解釋

在 SQL Server 中使用預存程序管理權限 (ADO.NET)

 

在 SQL Server 中使用預存程序管理權限 (ADO.NET)

更新: November 2007

為資料庫建立多重防線的方法之一,就是使用預存程序 (Stored Procedure) 或使用者定義的函式來實作所有資料存取。您可以撤銷或拒絕基礎物件 (例如資料表) 的所有權限,然後在預存程序上授與 EXECUTE 權限。如此即可有效地在資料和資料庫物件周圍建立安全性防線。

在 SQL Server 中使用預存程序管理權限 (ADO.NET)