向SQL Server中导入大量数量可以用bulk insert,但是必须要求 插入 的文件在 数据 库机器上或者一个 数据 库可以访问的共享文件夹中(我不知道怎么设置共享文件夹,以使得SQL Server能访问到) SqlBulkCopy 是.net中的一个类,提供了导入大量 数据 的功能。
向SQL Server中导入大量数量可以用bulk insert,但是必须要求插入的文件在数据库机器上或者一个数据库可以访问的共享文件夹中(我不知道怎么设置共享文件夹,以使得SQL Server能访问到)
SqlBulkCopy 是.net中的一个类,提供了导入大量数据的功能。
基本用法如下:
<span>using </span><span>(</span><span>SqlBulkCopy </span><span>bc = </span><span>new </span><span>SqlBulkCopy</span><span>(sqlConn, </span><span>SqlBulkCopyOptions</span><span>.TableLock | </span><span>SqlBulkCopyOptions</span><span>.UseInternalTransaction, </span><span>null</span><span>)) { bc.BulkCopyTimeout = 10 * 60; bc.BatchSize = 10000; bc.DestinationTableName = </span><span>"dbo.Destination"</span><span>; bc.WriteToServer(reader); </span><span>//reader 是一个继承自IDataReader的类的实例 </span><span>}</span>
自己可以写代码来实现继承自IDataReader的类。有n多成员要实现。。。
比如FieldCount, Read(), GetValue(int i), Close()等
下面是一个读文件的例子:
<span>//返回记录的列数 </span><span>public int </span><span>FieldCount { </span><span>get </span><span>{ </span><span>return </span><span>3; } } </span><span>//读记录,此方法会被自动调用 </span><span>public bool </span><span>Read() { </span><span>if </span><span>(_Reader == </span><span>null</span><span>) _Reader = </span><span>new </span><span>StreamReader</span><span>(_FilePath); </span><span>string </span><span>line = _Reader.ReadLine(); </span><span>if </span><span>(line != </span><span>null</span><span>) { _CurrentQueryItem = GetRawData(line); _Count++; </span><span>while </span><span>(_CurrentQueryItem == </span><span>null</span><span>)</span><span>//如果读出的是不满足条件的记录,则读下一条记录 </span><span>{ Read(); } </span><span>return true</span><span>; } </span><span>return false</span><span>; } </span><span>//返回一条记录中第i 列(项)的值,此方法会被自动调用 //SqlBulkCopy内部应该有一个循环,从0到FieldCount -1 ,再调用GetValue(int i)这个方法。我猜的。。。 </span><span>public object </span><span>GetValue(</span><span>int </span><span>i) { </span><span>if </span><span>(_CurrentQueryItem == </span><span>null</span><span>) </span><span>return null</span><span>; </span><span>switch </span><span>(i) { </span><span>//如果<strong>数据</strong>库中表的第一列是自增字段,则会忽略第一列,也就是说此方法被调用时,i只会从1开始,所以不需要case 0的情况。估计.net内部去取目的表的schema,自动判断哪些列是需要从外部导入的。有空再研究这个问题 </span><span>case </span><span>0: </span><span>return </span><span>_CurrentQueryItem.Item1; </span><span>case </span><span>1: </span><span>return </span><span>_CurrentQueryItem.Item2; </span><span>case </span><span>2: </span><span>return </span><span>_CurrentQueryItem.Item3; </span><span>default</span><span>: </span><span>throw new </span><span>IndexOutOfRangeException</span><span>(); } } </span><span>//释放资源 </span><span>public void </span><span>Close() { Dispose(); } </span><span>public void </span><span>Dispose() { </span><span>if </span><span>(_Reader != </span><span>null</span><span>) _Reader.Close(); }</span>
有一些其他属性其方法需要自己实现,当然有的不实现也没关系。似乎重要的就以上几个方法了。
对照SqlDataRead,自己可以猜想出会用到哪些方法。
经过实验,一个文件如果一行一行插入到数据库里,需要大约2分钟,如果用SqlBulkCopy 10秒左右就完成了。而且可以自己实现类来指定处理什么数据,也不用把文件放在数据库机器上了。不错。
忘说了,SqlBulkCopy里用到的connction对象只能是SqlConnection。SqlBulkCopy.WriteToServer (DataRow]) 和SqlBulkCopy.WriteToServer (DataTable) 都是可以的。

In database optimization, indexing strategies should be selected according to query requirements: 1. When the query involves multiple columns and the order of conditions is fixed, use composite indexes; 2. When the query involves multiple columns but the order of conditions is not fixed, use multiple single-column indexes. Composite indexes are suitable for optimizing multi-column queries, while single-column indexes are suitable for single-column queries.

To optimize MySQL slow query, slowquerylog and performance_schema need to be used: 1. Enable slowquerylog and set thresholds to record slow query; 2. Use performance_schema to analyze query execution details, find out performance bottlenecks and optimize.

MySQL and SQL are essential skills for developers. 1.MySQL is an open source relational database management system, and SQL is the standard language used to manage and operate databases. 2.MySQL supports multiple storage engines through efficient data storage and retrieval functions, and SQL completes complex data operations through simple statements. 3. Examples of usage include basic queries and advanced queries, such as filtering and sorting by condition. 4. Common errors include syntax errors and performance issues, which can be optimized by checking SQL statements and using EXPLAIN commands. 5. Performance optimization techniques include using indexes, avoiding full table scanning, optimizing JOIN operations and improving code readability.

MySQL asynchronous master-slave replication enables data synchronization through binlog, improving read performance and high availability. 1) The master server record changes to binlog; 2) The slave server reads binlog through I/O threads; 3) The server SQL thread applies binlog to synchronize data.

MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

The installation and basic operations of MySQL include: 1. Download and install MySQL, set the root user password; 2. Use SQL commands to create databases and tables, such as CREATEDATABASE and CREATETABLE; 3. Execute CRUD operations, use INSERT, SELECT, UPDATE, DELETE commands; 4. Create indexes and stored procedures to optimize performance and implement complex logic. With these steps, you can build and manage MySQL databases from scratch.

InnoDBBufferPool improves the performance of MySQL databases by loading data and index pages into memory. 1) The data page is loaded into the BufferPool to reduce disk I/O. 2) Dirty pages are marked and refreshed to disk regularly. 3) LRU algorithm management data page elimination. 4) The read-out mechanism loads the possible data pages in advance.

MySQL is suitable for beginners because it is simple to install, powerful and easy to manage data. 1. Simple installation and configuration, suitable for a variety of operating systems. 2. Support basic operations such as creating databases and tables, inserting, querying, updating and deleting data. 3. Provide advanced functions such as JOIN operations and subqueries. 4. Performance can be improved through indexing, query optimization and table partitioning. 5. Support backup, recovery and security measures to ensure data security and consistency.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Linux new version
SublimeText3 Linux latest version

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

Atom editor mac version download
The most popular open source editor