国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

詳解Microsoft SQL Server數(shù)據(jù)庫開發(fā)問題

2024-08-31 00:46:44
字體:
供稿:網(wǎng)友

1.SQL Server 2005中的存儲過程并發(fā)問題

問:我在SQL Server2005中遇到了并發(fā)問題。我持有車票的公共汽車上有一些空閑的座位。我在插入銷售的查票之前,需要查看是否還有空閑的座位。我的存儲過程做的事情如下所示:

以下為引用的內(nèi)容:

CREATE PROCEDURE add_ticket — parameters
DECLARE free_seats int BEGIN
TRANSACTION SELECT free_seats
 = COUNT(*) FROM tickets WHERE
seat_is_not_taken IF free_seats
<> 0 INSERT INTO tickets VALUES(…)
— some other statements END TRANSACTION

問題就是兩個過程可以同時讀取空閑票數(shù),并且都可以預(yù)約一張票,即使是那里已經(jīng)沒有空余的了。我需要一種方法來防止一個過程在另一個過程運行add_ticket程序,但是還沒有插入一張新票的時候讀取空票的數(shù)量。

解答: 你是正確的;更高的隔離級別也不會保證多個讀者去同時去讀取同一個數(shù)據(jù)行。然而,還有幾種方法你可以完成這項工作。例如,你可以給每個座位分配一個惟一的標(biāo)識符(意思是,惟一鍵——不一定是GUID),并且創(chuàng)建一個描述哪些座位已經(jīng)被預(yù)訂了的表。在表上放一個 UNIQUE約束,你就可以確保同一個座位不會被插入兩次了。

就是說,我認(rèn)為一個更有趣的方法就是使用SQL Service Broker。你可以為每個公交建立一個會話,并且將這個會話的句柄存放在一個表中,讀者在執(zhí)行RECEIVE之前可以參考這個表。通過這種方式,讀者就可以正確地過濾。公共汽車上的每個座位都插一個消息到隊列中。讀者就可以簡單地RECEIVE到所需的消息(在這個過程中,預(yù)定公共汽車上的座位)。 Service Broker會確保沒有消息會被接受兩次,也就是說你不會再遇到并發(fā)問題了。

2.SQL Server 2005中的索引類別

問:SQL Server 2005中是否有新的索引類別了?

解答: SQL Server 2005沒有為關(guān)系表引入新的索引類型?;旧?mdash;—聚簇和非聚簇索引是以B-trees的方式實現(xiàn)的——還仍然在應(yīng)用。然而,SQL Server 2005確實包含了一些索引上的加強,不論是完全文本索引,還是對于XML數(shù)據(jù),此外這些加強還可以改善一些與關(guān)系型索引有關(guān)的問題。

SQL Server 2005的完全文本索引特性是全新的,并且是重新編寫的。要獲得這個特性的信息,請閱讀Nimish Khanolkar的MSDN廣播文檔,介紹SQL Server 2005中的全文本查找。

XML是SQL Server 2005中另外一個在方式上發(fā)生了巨大轉(zhuǎn)變的內(nèi)容。現(xiàn)在對于開發(fā)人員來說有第一流的XML數(shù)據(jù)類型可用了。這個類型支持XQuery查詢語言,使用了這個類型的字段可以通過特殊格式的XML索引被索引到。要了解更多有關(guān)XML類型的信息,請查找MSDN 上的文章。

還有各種各樣的有關(guān)T-SQL索引命令的加強。也許最令人感興趣的就是新的“在線”索引類型,它允許數(shù)據(jù)庫管理員在不需要把用戶鎖到表外面的情況下執(zhí)行索引維護任務(wù)。這個很有可能標(biāo)記著數(shù)據(jù)庫管理員需要等到夜里3點才能打開維護窗口修正問題的狀況的終結(jié)!

3.對于表和字段的常見名字約束

問:什么是常見的對表和字段的名字約束?

解答:SQL Server 2000下的表和字段名稱有1到128字節(jié)的限制,并且遵循用于標(biāo)識的規(guī)則。

第一個字母必須是如下的一種:

· Unicode Standard 2.0中規(guī)定的字母。

Unicode對字母的定義包括:拉丁字母,從A到Z,除了來自其他語言的字母之外。

· 下劃線(_),at符號(@),或者數(shù)字符號(#)

 

 

共2頁上一頁12下一頁
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平昌县| 沁源县| 敦化市| 同仁县| 玉田县| 上虞市| 汽车| 营口市| 双辽市| 光山县| 安乡县| 许昌县| 巨野县| 马鞍山市| 孟州市| 灵武市| 六枝特区| 延吉市| 眉山市| 昔阳县| 梓潼县| 卓资县| 东莞市| 南投市| 涿鹿县| 永安市| 阜新市| 连南| 白玉县| 泸水县| 东兰县| 宜都市| 静安区| 定襄县| 秭归县| 鹿泉市| 来安县| 昌吉市| 永寿县| 房产| 老河口市|