Time of Update: 2015-06-30
標籤:等待狀態是隔離SQL SERVER效能問題的一個重要手段,從執行個體層級入手。可以大概看出SQL SERVER在過去某段時間內是否處於某種資源的吃緊狀態。不過取決於你是否有建立有效效能資料收集機制。sys.dm_os_wait_stats這張DMV的資料是從執行個體上次啟動起收集的。WITH Waits AS ( SELECT wait_type, wait_time_ms / 1000. AS wait_time_s, 100. * wait_time_ms /
Time of Update: 2015-06-30
標籤:1.比較常見和好用的一種SELECT TOP 10 *, NEWID() AS randomFROM tableORDER BY random--newid函數會隨機產生一個guid,很長的一個字串,我們可以利用它進行隨機取數 2.比較快速的一種()--Declare @d Datetime --Set @d=getdate() SELECT Top 1* FROM users WHERE 0.01 >= CAST(CHECKSUM(NEWID(), uid) &
Time of Update: 2015-06-29
標籤:ctpSQL Server 2016 CTP2 於5月29日正式發布 Community Technology Preview(Community Technical Preview)僅用於測試目的,不應在生產環境中安裝和使用。在生產環境中安裝正式版本時,會強制要求先卸載原生所有CTP版本。 CTP計劃是微軟建立新形象的一個策略,CTP計劃使用一種“早發布,常發布”的方式來讓使用者更及時的實際測試軟體;建立獨立的“feature
Time of Update: 2015-06-30
標籤:唯一索引(UNIQUE INDEX) 當主鍵建立時如果不設定為叢集索引,那麼就一定是唯一的非叢集索引。實際上,唯一索引,故名思議就是它要求該列上的值是唯一的。唯一索引能夠保證索引鍵中不包含重複的值,從而使表中的每一行從某種方式上具有唯一性。 建立 UNIQUE 約束和建立與約束無關的唯一索引並沒有明顯的區別。進行資料驗證的方式相同,而且對於唯一索引是由約束建立的還是手動建立的,查詢最佳化工具並不加以區分。 但是,建立列的 UNIQUE
Time of Update: 2015-06-29
標籤:從Paul White的推特上看到,在SQL Server 2014裡,對於表變數(Table Variables),它是支援非唯一叢集索引(Non-Unique Clustered Indexes)和非叢集索引(Non-Clustered Indexes)的。看到這個,我決定在自己的虛擬機器裡嘗試下,因為這將是個卓越的功能。表變數很棒,因為用它可以避免過多的重編譯(excessive
Time of Update: 2015-06-30
標籤:-- 根據大訂單號查詢已付供應商金額(已付-已退)ALTER FUNCTION [dbo].[F__SupplierPayOffAmountBOrder]( -- Add the parameters for the function here @BOrderId int )RETURNS decimalASBEGIN declare @payOffAmount decimal set
Time of Update: 2015-06-29
標籤:-- Sql Server 2008 USE [master]GOALTER DATABASE [UENCDOP1] SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE [UENCDOP1] SET RECOVERY SIMPLE --簡單模式GOUSE [UENCDOP1]GODBCC SHRINKFILE (N‘PENCDOP1_log‘ , 11, TRUNCATEONLY) GO --
Time of Update: 2015-06-30
標籤:從網上找到了下面一段代碼:declare @Pk varchar(100);select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID(‘表名‘) and xtype=‘PK‘;if @Pk is not nullbegin exec(‘Alter table 表名 Drop ‘+ @Pk)
Time of Update: 2015-06-29
標籤:declare @DeptName varchar(50), @LoadCount float, @TransCount float, @HisLoad float, @HisTrans float, @Status varchar(50), @PushDate datetime, @EditDate datetime declare @date datetime set @date=convert(datetime,convert(varchar,GETDATE()-2,23))
Time of Update: 2015-06-30
標籤:談到Columnstore index就不得不提SQL SERVER的壓縮技術了。Columnstore就是用到了SQL SERVER的壓縮技術。Columnstore又分Columnstore和Columnstore_Archive兩種不同的壓縮類型。Columnstore_Archive運用了Microsoft
Time of Update: 2015-06-26
標籤: 上一篇提到動態T-SQL會產生較多的執行計畫,這些執行計畫會佔用多少記憶體呢?今天從徐海蔚的書中找到了答案。動態視圖不僅可以查到執行計畫的緩衝,資料表的頁面緩衝也可以查到,將SQL整理一下,做個標記。-- 查詢SqlServer總體的記憶體使用量情況select type , sum(virtual_memory_reserved_kb) VM_Reserved , sum(virtual_
Time of Update: 2015-06-25
標籤: 對於SQL效能,已經很久沒關注了。由於近期項目既沒有幾千萬的海量資料也沒有過多的效能要求,所以在效能上也就沒下太多功夫。然而,前不久和朋友閑談間話題一轉就說到程式上了,他說他用Delphi做了個資料匯入的功能,插入資料的時候感覺很慢。以個人對SQL的瞭解,就建議他使用批量插入的方式,並很認真的告訴他這樣應該會快很多。而在實際工作中,類似大量匯入資料的功能是非常常見的,也許一個不小心我們就搞掛了伺服器。那就究竟要怎麼做才能給伺服器留條活路,讓使用者不用點完上傳看部電影再看上傳結果呢?為此
Time of Update: 2015-06-27
標籤:--若提前“禁止架構更改”,新增的列不會自動添加大發布,此時應使用 sp_articlecolumn 添加列EXEC sp_changepublication @publication = N'publication', @property = N'replicate_ddl', @value = 0--【移除和添加發布而不初始化所有項目,但是添加的項目須初始化】--禁止匿名訪問Exec sp_changepublication
Time of Update: 2015-06-25
標籤:若只是需要大批量插入資料使用bcp是最好的,若同時需要插入、刪除、更建立議使用SqlDataAdapter我測試過有很高的效率,一般情況下這兩種就滿足需求了 bcp方式 複製代碼 代碼如下: /// <summary> /// 大批量插入資料(2000每批次) /// 已採用整體事物控制 /// </summary> /// <param name="connString">資料庫連結字串</param> /// <param
Time of Update: 2015-06-25
標籤: 如果執行不帶參數的SQL語句,SQL Server會在內部對該語句進行參數化以增加將其與現有執行計畫相匹配的可能性。此過程稱為簡單參數化(在SQL Server 2000中,稱為自動參數化),最終起到執行計畫重用的效果。--從資料緩衝池中刪除所有緩衝DBCC DROPCLEANBUFFERS GO--從執行計畫緩衝區刪除所有緩衝的執行計畫DBCC FREEPROCCACHE GO--執行不帶參數的SQL語句,
Time of Update: 2015-06-24
標籤:今天在做資料分析報表的時候遇到一個這樣的問題。表結構如下。 部門編碼、部門名稱、部門人員ID(中間用逗號分割)我想通過和人員錶鏈接,查詢出一個新的資料集,查詢出的結果集格式如下:
Time of Update: 2015-06-24
標籤:SQL Server資料庫效能最佳化之SQL語句篇近期項目需要,做了一段時間的SQL Server效能最佳化,遇到了一些問題,也積累了一些經驗,現總結一下,與君共用。SQL
Time of Update: 2015-06-25
標籤:c# .net sqlserver --1.建立SqlServerExt項目,編寫 C# 方法產生 SqlServerExt.DLL 檔案using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using
Time of Update: 2015-06-24
標籤:事務必須有四個屬性:原子性、一致性、隔離性、持久性,這四個屬性的首字母可以縮寫為ACID。以下代碼定義了一個事務,插入新訂單資料:-- Start a new transactionBEGIN TRAN; -- Declare a variable DECLARE @neworderid AS INT; -- Insert a new order into the Sales.Orders table INSERT INTO Sales.Orders (custid,
Time of Update: 2015-06-25
標籤:方案一 用Update和Replace--替換語句(因為varchar(max)最大值是8000,所以大於8000的部分會被截掉)UPDATE dbo.SNS_UserBlog SET [Description]=REPLACE(CAST([Description] AS VARCHAR(max)),‘sx‘,‘‘)WHERE BlogID=142這個方案有一定局限性那就是欄位的長度不能超過8000。方案二 UPDATETEXT 方法--更新語句DECLARE @ptrval