Time of Update: 2015-06-25
標籤: 對於SQL效能,已經很久沒關注了。由於近期項目既沒有幾千萬的海量資料也沒有過多的效能要求,所以在效能上也就沒下太多功夫。然而,前不久和朋友閑談間話題一轉就說到程式上了,他說他用Delphi做了個資料匯入的功能,插入資料的時候感覺很慢。以個人對SQL的瞭解,就建議他使用批量插入的方式,並很認真的告訴他這樣應該會快很多。而在實際工作中,類似大量匯入資料的功能是非常常見的,也許一個不小心我們就搞掛了伺服器。那就究竟要怎麼做才能給伺服器留條活路,讓使用者不用點完上傳看部電影再看上傳結果呢?為此
Time of Update: 2015-06-25
標籤:有時候要獲得表主鍵欄位,雖然系統內建有預存程序可以獲得,但是對於熟悉系統資料表的話,自己寫個也很容易。 2 Declare @table_name varchar(100) 3 Set @table_name=‘table_Pqs‘ 4 --1、可以根據系統預存程序 5 Execute sp_pkeys @table_name 6 7 --2、根據系統資料表獲得 8 Declare @objectid int 9 Set
Time of Update: 2015-06-25
標籤:鎖 sql SQL 有時遇到 已超過了鎖請求逾時時段。 (Microsoft SQL Server,錯誤: 1222)這個錯誤,重新整理以後,右擊某張表或者庫,發現裡面的表全部消失了 或者查詢不到。 這是因為 sql進程死結,資源被搶佔,要解決這個問題,得殺死關閉 死結的進程,下面介紹解決方案:殺死進程的前提是找到 那個死結的進程 ,SELECT blocking_session_id ‘阻塞進程的ID‘,
Time of Update: 2015-06-25
標籤:轉載地址:http://www.jb51.net/article/22980.htm方法一 複製代碼 代碼如下:declare @max integer,@id integer declare cur_rows cursor local for select 主欄位,count(*) from 表名 group by 主欄位 having count(*) > 1 open cur_rows fetch cur_rows into @id,@max while
Time of Update: 2015-06-23
標籤:如果由於外鍵約束刪除table失敗,則先刪除所有約束: --/第1步**********刪除所有表的外鍵約束*************************/ DECLARE c1 cursor forselect ‘alter table [‘+ object_name(parent_obj) + ‘] drop constraint [‘+name+‘]; ‘from sysobjectswhere xtype = ‘F‘open c1declare @c1
Time of Update: 2015-06-25
標籤:若只是需要大批量插入資料使用bcp是最好的,若同時需要插入、刪除、更建立議使用SqlDataAdapter我測試過有很高的效率,一般情況下這兩種就滿足需求了 bcp方式 複製代碼 代碼如下: /// <summary> /// 大批量插入資料(2000每批次) /// 已採用整體事物控制 /// </summary> /// <param name="connString">資料庫連結字串</param> /// <param
Time of Update: 2015-06-23
標籤:sql server TSQL在有字串拼接的情況下,必須要初始化字串,set @errorMsg += N‘表 role 沒有主鍵‘+‘.‘;如果沒有給@errorMsg賦初始值,則select @errorMgs得到的永遠是NULL;declare @errorMsg nvarchar(500);declare @tmpErrorMsg nvarchar(500);declare @pkCount int;declare @PKTable table(TABLE_QUALIFIER
Time of Update: 2015-06-25
標籤: 如果執行不帶參數的SQL語句,SQL Server會在內部對該語句進行參數化以增加將其與現有執行計畫相匹配的可能性。此過程稱為簡單參數化(在SQL Server 2000中,稱為自動參數化),最終起到執行計畫重用的效果。--從資料緩衝池中刪除所有緩衝DBCC DROPCLEANBUFFERS GO--從執行計畫緩衝區刪除所有緩衝的執行計畫DBCC FREEPROCCACHE GO--執行不帶參數的SQL語句,
Time of Update: 2015-06-25
標籤: 在關聯式資料庫中,我們對於查詢的思考是面向集合的。而遊標打破了這一規則,遊標使得我們思考方式變為逐行進行.對於類C的開發人員來著,這樣的思考方式會更加舒服。 正常面向集合的思維方式是:
Time of Update: 2015-06-23
標籤:轉載自:http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 1. 按需索取欄位,跟“SELECT *”說拜拜欄位的提取一定要按照“用多少提多少”的原則,避免使用“SELECT
Time of Update: 2015-06-24
標籤:今天在做資料分析報表的時候遇到一個這樣的問題。表結構如下。 部門編碼、部門名稱、部門人員ID(中間用逗號分割)我想通過和人員錶鏈接,查詢出一個新的資料集,查詢出的結果集格式如下:
Time of Update: 2015-06-25
標籤: 今天linux的yum也不能用,用的是第三方的yum源,yum安裝好後更新header又花了很長時間。記得安裝指定安裝目錄要用 --with-php-config=PATH命令。 CentOS 6安裝PHP pdo_dblib擴充十月 14TH, 2014 | CENTOS 6安裝PHP PDO_DBLIB擴充已關閉評論第一步:先安裝freetds及相關庫yum install freetds freetds-develyum install
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-23
標籤:轉載自:http://www.lmwlove.com/ac/ID943 rowcount的用法:rowcount的作用就是用來限定後面的sql在返回指定的行數之後便停止處理,比如下面的樣本,set rowcount 10select * from 表A這樣的查詢只會返回表A中的前10條資料。它和 "select top 10 * from 表A" 的
Time of Update: 2015-06-23
標籤:sql判斷預存程序是否存在判斷資料庫教程是否存在Sql代碼if exists (select * from sys.databases where name = ’資料庫名’) drop database [資料庫名] if exists (select * from sys.databases where name = ’資料庫名’) drop database [資料庫名]判斷表是否存在Sql代碼if exists
Time of Update: 2015-06-24
標籤:原文:ThinkPHP串連sql server資料庫親身經曆,在網上找串連sql
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
Time of Update: 2015-06-23
標籤:在asp.net中串連sqlserver資料庫之前,首先得確保正常安裝了sqlserver2008,同時有資料庫。在項目中添加一個類DB,用來專門負責執行對資料庫的增刪改查。在添加的過程中會彈出下面的一個提示直接點是就可以了。在這個類中,首先定義一個連線物件 private SqlConnection conn = null;然後定義下面三個函數private void SetConnection()//初始化連線物件 { if (conn == null)