[SQL Server]SQLServer ÅúÁ¿²åÈëÊý¾ÝµÄÁ½ÖÖ·½·¨
ÔÚSQL Server ÖвåÈëÒ»ÌõÊý¾ÝʹÓÃInsertÓï¾ä£¬µ«ÊÇÈç¹ûÏëÒªÅúÁ¿²åÈëÒ»¶ÑÊý¾ÝµÄ»°£¬Ñ»·Ê¹ÓÃInsert²»½öЧÂʵͣ¬¶øÇһᵼÖÂSQLһϵͳÐÔÄÜÎÊÌâ¡£ÏÂÃæ½éÉÜSQL ServerÖ§³ÖµÄÁ½ÖÖÅúÁ¿Êý¾Ý²åÈë·½·¨£ºBulkºÍ±íÖµ²ÎÊý(Table-Valued Parameters)¡£
ÔËÐÐÏÂÃæµÄ½Å±¾£¬½¨Á¢²âÊÔÊý¾Ý¿âºÍ±íÖµ²ÎÊý¡£
´úÂëÈçÏÂ:
--Create DataBase
create database BulkTestDB;
go
use BulkTestDB;
go
--Create Table
Create table BulkTestTable(
Id int primary key,
UserName nvarchar(32),
Pwd varchar(16))
go
--Create Table Valued
CREATE TYPE BulkUdt AS TABLE
(Id int,
UserName nvarchar(32),
Pwd varchar(16))
ÏÂÃæÎÒÃÇʹÓÃ×î¼òµ¥µÄInsertÓï¾äÀ´²åÈë100ÍòÌõÊý¾Ý£¬´úÂëÈçÏ£º
´úÂëÈçÏÂ:
Stopwatch sw = new Stopwatch();
SqlConnection sqlConn = new SqlConnection(
ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);//Á¬½ÓÊý¾Ý¿â
SqlCommand sqlComm = new SqlCommand();
sqlComm.CommandText = string.Format("insert into BulkTestTable(Id,UserName,Pwd)values(@p0,@p1,@p2)");//²ÎÊý»¯SQL
sqlComm.Parameters.Add("@p0", SqlDbType.Int);
sqlComm.Parameters.Add("@p1", SqlDbType.NVarChar);
sqlComm.Parameters.Add("@p2", SqlDbType.VarChar);
sqlComm.CommandType = CommandType.Text;
sqlComm.Connection = sqlConn;
sqlConn.Open();
try
{
//Ñ»·²åÈë100ÍòÌõÊý¾Ý£¬Ã¿´Î²åÈë10ÍòÌõ£¬²åÈë10´Î¡£
for (int multiply = 0; multiply < 10; multiply++)
{
for (int count = multiply * 100000; count < (multiply + 1) * 100000; count++)
{
sqlComm.Parameters["@p0"].Value = count;
sqlComm.Parameters["@p1"].Value = string.Format("User-{0}", count * multiply);
sqlComm.Parameters["@p2"].Value = string.Format("Pwd-{0}", count * multiply);
sw.Start();
sqlComm.ExecuteNonQuery();
sw.Stop();
}
//ÿ²åÈë10ÍòÌõÊý¾Ýºó£¬ÏÔʾ´Ë´Î²åÈëËùÓÃʱ¼ä
Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds));
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlConn.Close();
}
Console.ReadLine();
ºÄʱͼÈçÏ£º
ÓÉÓÚÔËÐйýÂý£¬²Å²åÈë10ÍòÌõ
Ïà¹ØÎĵµ£º
ÏÂÃæÊÇSql Server ºÍ Access ²Ù×÷Êý¾Ý¿â½á¹¹µÄ³£ÓÃSql£¬Ï£Íû¶ÔÄãÓÐËù°ïÖú¡£
н¨±í£º
create table [±íÃû]
(
[×Ô¶¯±àºÅ×Ö¶Î] int IDENTITY (1,1) PRIMARY KEY ,
[×Ö¶Î1] nVarChar(50) default \'ĬÈÏÖµ\' null ,
[×Ö¶Î2] ntext null ,
[×Ö¶Î3] datetime,
[×Ö¶Î4] money null ,
[×Ö¶Î5] int default 0,
[×Ö¶Î6] De ......
1.Ò»µÀSQLÓï¾äÃæÊÔÌ⣬¹ØÓÚgroup by
±íÄÚÈÝ£º
2005-05-09 ʤ
2005-05-09 ʤ
2005-05-09 ¸º
2005-05-09 ¸º
2005-05-10 ʤ
2005-05-10 ¸º
2005-05-10 ¸º
Èç¹ûÒªÉú³ÉÏÂÁнá¹û, ¸ÃÈçºÎдsqlÓï¾ä?
ʤ ¸º
2005-05-09 2 2
2005-05-10 1 2
------------------------------- ......
µÚÒ»·¶Ê½:È·±£Ã¿ÁеÄÔ×ÓÐÔ.
Èç¹ûÿÁÐ(»òÕßÿ¸öÊôÐÔ)¶¼ÊDz»¿ÉÔÙ·ÖµÄ×îСÊý¾Ýµ¥Ôª(Ò²³ÆΪ×îСµÄÔ×Óµ¥Ôª),ÔòÂú×ãµÚÒ»·¶Ê½.
ÀýÈç:¹Ë¿Í±í(ÐÕÃû¡¢±àºÅ¡¢µØÖ·¡¢……)ÆäÖÐ"µØÖ·"Áл¹¿ÉÒÔϸ·ÖΪ¹ú¼Ò¡¢Ê¡¡¢ÊС¢ÇøµÈ¡£
µÚ¶þ·¶Ê½:ÔÚµÚÒ»·¶Ê½µÄ»ù´¡Éϸü½øÒ»²ã,Ä¿±êÊÇÈ·±£±íÖеÄÿÁж¼ºÍÖ÷¼üÏà¹Ø.
Èç¹ûÒ»¸ö¹ØϵÂú×ã ......
Èç¹ûÄúÊý¾Ý¿âϵͳ°²×°ÔÚϵͳÅÌ£¨±ÈÈç C ÅÌ£©£¬ÓÉÓÚ C ÅÌÈÝÒ×Êܲ¡¶¾ÇÖº¦£¬ÄúÒ²ÐíÏ£ÍûÄúµÄÊý¾Ý´æ·ÅÔÚ·ÇϵͳÅÌ£¨±ÈÈç D ÅÌ£©£¬Òª×öµÄÕâµãºÜ¼òµ¥£¬Äú²¢²»ÐèÒªÖØ×°Êý¾Ý¿â£¬Ö»Òª°ÑÊý¾Ý“·ÖÀ딣¬È»ºó½«Ïà¹ØÎļþÒƶ¯µ½ D Å̵Äij¸öĿ¼£¬½Ó×Å“¸½¼Ó”Êý¾Ý¿â¼´¿É¡£
SQL Server 2000ÔÊÐí·ÖÀëÊý¾Ý¿âµÄÊý¾ÝºÍÊÂÎñÈ ......