SQL Server重溫——索引

索引的代價1.增加、更改、刪除索引都會維護2.索引佔據一定的物理空間 建立索引的原則1.主鍵一定要建立索引2.外鍵一定要建立索引3.對於經常查詢的資料最好建立索引    a.對於範圍資料,可以利用索引排序加快查詢時間    b.將索引建立在where子句的集合過程中4.查詢很少涉及到的列、重複值多的列不要建立索引5.資料量大、或小的列不要建立索引 索引分類1.叢集索引(物理排序)(只有一個)2.非叢集索引(無物理排序)(249個)3.唯一索引(對資料的唯一約束) 索引的分析1.showplan_

sql server多行資料拼接

1.表結構idtypeproductCode1鉛筆00012鉛筆00023鉛筆00034鋼筆00045鋼筆00056鋼筆00047圓珠筆00078圓珠筆00089圓珠筆00072.自訂函數funGO/****** Object:  UserDefinedFunction [dbo].[fun]    Script Date: 11/22/2011 16:09:45 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCreate

sqlserver取漢字的首字母

Create  function fun_getPY (    @str nvarchar(4000) )returns nvarchar(4000)asbegin  declare @word nchar(1),@PY nvarchar(4000)  set @PY=''  while len(@str)>0  begin    set @word=left(@str,1)    --如果非漢字字元,返回原字元    set @PY=@PY+(case when

SQL SERVER Conver方法

Convert()函數是把日期轉換為新資料類型的通用函數Convert()函數可以用不同的格式顯示日期/時間資料文法:Convert(data_type(length),date_to_be_converted,style)date_type(length)規定目標資料類型(帶有可以選取的長度)。data_to_be_converted含有需要轉換的值,style規定日期/時間的輸出格式可以使用的Style的值:styleID                style格式100或者0      

SQL Server重溫——事務

為什麼使用事務  當對多個表進行更新的時候,某條執行失敗。為了保持資料的完整性,需要使用交易回復。 顯示設定事務 begin try begin transaction insert into shiwu (asd) values ('aasdasda'); commit transaction end try begin catch select ERROR_NUMBER() as errornumber rollback transaction

在sql server中如何判斷表是否存在

Sql Server資料庫中表等對象都儲存在sysobjects資料表中,暫存資料表被儲存於tempdb資料庫中1.判斷普通表是否存在,可以使用object_id函數,它可以根據對象名稱返回對象的idif (select object_id('TableName')) is not null  select 'true'else  select 'false'或者if exists(select [id] from [sysobjects] where [name]='TableName')

SQL Server提供的3種恢複模型都是什嗎? 有什麼區別?

SQL Server提供了3種恢複模型,分別是:l         簡單恢複 ,允許將資料庫恢複到最新的備份。l         完全恢複,允許將資料庫恢複到故障點狀態。l         大容量日誌記錄恢複,允許大容量日誌記錄操作。這些模型中的每個都是針對不同的效能、磁碟和磁帶空間以及保護資料丟失的需要。例如,當選擇恢複模型時,必須考慮下列業務要求之間的權衡:l         大規模操作的效能(如建立索引或大容量裝載)。l         資料丟失表現(如已提交的事務丟失)。l       

SQL SERVER 取所有表及注釋 和 欄位屬性

取表資訊 select   sysobjects.name,sys.extended_properties.value   from   sysobjects left join sys.extended_properties on sysobjects.id=sys.extended_properties.major_id  where   type= 'U ' and sys.extended_properties.minor_id='0' order by name  取欄位資訊 sele

sql server 資料庫 避免死結

減少資料庫死結!Here are some tips on how to avoid deadlocking on your SQL Server:Ensure the database design is properly normalized. Have the application access server objects in the same order each time. During transactions, don't allow any user input.

我們也來hold住–最佳化SQL SERVER鎖的使用

     秒殺已經很不陌生了,秒殺對於我們程式員來說更多的是並髮帶來的思考,也許有天才考慮的是如何做秒殺器來橫掃“秒殺江湖”。前日應邀來最佳化秒殺的sql。  讓我們來看看這秒殺的預存程序。(部分代碼如下)  create PROCEDURE [dbo].[kill]    @userid nvarchar(64),    @killId intASBEGIN    BEGIN TRAN        declare @storage int        --判斷庫存        selec

SQL Server / Access資料類型對照表

SQL Server and Access data types.SQL Server 7 data type ADO data type Enum value binary adVarBinary bit adBoolean char adChar datetime adDate decimal

SQL Server 分區表 處理海量資料

你是不是也在苦苦尋求最佳化自己的SQL Server資料庫的方法?如果你的資料庫裡有不少非常大的表格,資料分割函數能夠幫到你很大的忙……   【IT專家網獨家】你是不是也在苦苦尋求最佳化自己的SQL Server資料庫的方法?如果你的資料庫裡有不少非常大的表格,資料分割函數能夠幫到你很大的忙,因為它可以把這些大表格分割成獨立檔案組。這個技術可以讓你把資料分布在不同的物理磁碟中,並通過調節它們的並行效能來最佳化你的查詢效能。  對SQL

SQL SERVER Database Backup還原

在查詢分析器裡使用如下代碼:sp_Attach_db @dbName = N'a00', @FileName1 = N'D:\vc\sqldb\a00_Data.MDF', @FileName2 = N'D:\vc\sqldb\a00_Log.LDF'把上面的2個檔案換成你的對應檔案就可以了,按執行--ok或者:在資料庫的名字上點右鍵--所有任務--備分資料庫--常規--備分到--(選擇存放位置、文本*.txt)--確定

SQL Server 中四種匹配符的含義[ZT]

SQL Server 中四種匹配符的含義      % 代表零個或者多個任一字元    _ 代表一個任一字元    [] 指定範圍內的任意單個字元    [^] 不在指定範圍內的任意單個字元        帶有匹配符的字串必須使用引號引起來,例如下面的樣本:        LIKE 'BR%'返回以“BR”開始的任一字元串。    LIKE 'Br%'返回以“Br”開始的任一字元中。    LIKE '%een'返回以“een”結束的任一字元串。    LIKE

SQL Server死結產生原因及解決辦法

   其實所有的死結最深層的原因就是一個:資源競爭  表現一:  一個使用者A 訪問表A(鎖住了表A),然後又訪問表B,另一個使用者B 訪問表B(鎖住了表B),然後企圖訪問表A,這時使用者A由於使用者B已經鎖住表B,它必須等待使用者B釋放表B,才能繼續,好了他老人家就只好老老實實在這等了,同樣使用者B要等使用者A釋放表A才能繼續這就死結了。  解決方案:  這種死結是由於你的程式的BUG產生的,除了調整你的程式的邏輯別無他法  仔細分析你程式的邏輯:  1:盡量避免同時鎖定兩個資源  2:

SQL Server 返回最後插入記錄的自動編號ID

最近在開發項目的過程中遇到這麼一個問題,就是在插入一條記錄的後立即擷取其在資料庫中自增的ID,以便處理相關聯的資料,怎麼做?在sql server 2000中可以這樣做,有幾種方式。詳細請看下面的講解與對比。一、要擷取此ID,最簡單的方法就是:(以下舉一簡單實用的例子)--建立資料庫和表create database MyDataBaseuse MyDataBasecreate table mytable(id int identity(1,1),name

SQL Server進階內容之子查詢和錶鏈接

1.子查詢概念   (1)就是在查詢的where子句中的判斷依據是另一個查詢的結果,如此就構成了一個外部的查詢和一個內部的查詢,這個內部的查詢就是自查詢。   (2)自查詢的分類  1)獨立子查詢     ->獨立單值(標量)子查詢  (=) 1 Select 2 3 testID,stuID,testBase,testBeyond,testPro 4 5 from Score 6 7 where stuID=( 8 9 select

SQL Server進階內容之表運算式和複習

1. 表運算式  (1) 將表作為一個源或將查詢的一個結果集作為一個源,對源做處理,然後得到一個新的資料來源,對其進行查詢。   (2)表運算式放在from子句中   (3)派生表,將表的查詢得到的結果集作為一個新的資料來源,需要注意一下幾點:    1)派生表必須有括弧括起。    2)派生表需要取別名    3)派生表中的所有欄位也要有別名(必須要給欄位起名)。    4)能夠作為派生表的只有結果集(遊標不行)。   (4)寫一段SQL語句,大家可以體會一下,這裡就不提供資料庫了。 1

SQL server 的類型轉換

最近寫了點指令碼,對涉及的一點類型轉換做個總結。由於資料是從CSV檔案中讀取的,也就是用逗號(,)分割的檔案類型,可以用EXcel開啟,也可用文字文件開啟,都沒有什麼關心,檔案的讀取。     *.CSV檔案都是有*.INI檔案的對應的內容的。     [<filename>.CSV]     ColNameHeader = False  //是否讀取列名     Format = CSVDelimited     CharacterSet =

詳解SQL Server的兩個預存程序:sp_MSforeachtable/sp_MSforeachdb

1.簡介:    作為DBA會經常需要檢查所有的資料庫或使用者表,比如:檢查所有資料庫的容量;看看指定資料庫所有使用者表的容量,所有表的記錄數...,我們一般處理這樣的問題都是用遊標分別處理處理,比如:在資料庫檢索效率非常慢時,我們想檢查資料庫所有的使用者表,我們就必須通過寫遊標來達到要求;如果我們用sp_MSforeachtable就可以非常方便的達到相同的目的:EXEC sp_MSforeachtable @command1="print '?' DBCC CHECKTABLE ('?')"

總頁數: 792 1 .... 314 315 316 317 318 .... 792 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.