- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库大数据导入.doc
数据库大数据导入
方法一
SqlBulkCopy
参考例子一(客户端构建与数据库中接收数据的表的结构一样的表,然后相当于是把客户端的表数据拷贝到数据库表中,免去了多次写入的麻烦,速度较快)
方法二
表值参数方式
见 例二(说明:把表结构当成存储过程变量的一个参数,为一次性提交到数据库处理方法中,比多次写入数据库的速度快很多)
方法三
数据库命令
Bulk 等命令
见例三(说明:例三只是提过了一种解决问题的办法:使用数据库中强大的命令 导入导出大数据,并处理(数据库对格式较好的大数据处理较容易))
方法四
数据库调用外部(Dll)方法
见例四 (说明:例四只是提供了一种这种问题的方式:使用强大的.net framework 处理大数据,然后把结果以数据库函数的形式返回处理结果)
四种方法可有特点,根据实际情况选择不同的方法
心得:
个人意见:我比较推荐使用前边两种方法,他们可以在程序中友好的控制,并且速度也不赖。
方法三需要数据库能够访问指定的文件的权限,并且容易带来一些安全问题,操作也不易,但是处理得当,速度很快。
方法四更适合一些固定不变的用数据库函数或者其他方式实现起来又不容易,借助与.net 实现起来较简单的情况下使用,比如想在数据库端实现 复杂的加密解密。
例子-:
例子一:SqlBulkCopy
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
// Open a sourceConnection to the AdventureWorks database.
using (SqlConnection sourceConnection =
new SqlConnection(connectionString))
{
sourceConnection.Open();
// Perform an initial count on the destination table.
SqlCommand commandRowCount = new SqlCommand(
SELECT COUNT(*) FROM +
dbo.BulkCopyDemoMatchingColumns;,
sourceConnection);
long countStart = System.Convert.ToInt32(
commandRowCount.ExecuteScalar());
Console.WriteLine(Starting row count = {0}, countStart);
// Get data from the source table as a SqlDataReader.
SqlCommand commandSourceData = new SqlCommand(
SELECT ProductID, Name, +
ProductNumber +
FROM Production.Product;, sourceConnection);
SqlDataReader reader =
commandSourceData.ExecuteReader();
// Set up the bulk copy object using a connection string.
// In the real world you would not use SqlBulkCopy to move
// data from one table to the other in the same database.
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(connectionString))
文档评论(0)