在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

IIS日志导入SQLSERVER的实例分析

107次阅读
没有评论

共计 1807 个字符,预计需要花费 5 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关 IIS 日志导入 SQLSERVER 的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一直使用 URCHIN 分析日志,这款 google 的日志分析工具无论从功能或效率都没的说。

但还是有些特殊的分析需求还是不能完成。因此决定把日志导入到 SQLSERVER 中进行分析

开始想象的比较简单。嵌套一个循环基本可以完成

一个大循环读取某文件夹下的所有日志文件

里边的小循环逐行读取日志,里边 split 开来,插入 sql 即可。

根据数据表建立 tableadapter ,使用 insert 存储过程逐条插入数据。

第一个问题来了,发现一个日志文件大约 200W 行需要执行 3 个小时?。?!

效率太低了,开始考虑开启多线程,后来发现执行效率应该和线程无关,主要在 tableadapter 的插入操作上。

这个插入方法实际上是每次执行连接 - 插入 - 断开操作。

解决方法是使用内存,少进行 IO 操作。

先建立一个 datatable。使用 tableadapter 中的强类型对象初始化这个 datatable。

然后将数据读入 datatable.

最后使用.net 对象中的 sqkbulkcopy 填充数据库。

这样数据填充的速度问题解决了。几乎 200W 的数据在 5 分钟之内可以导完。

但实际调试中,第二个问题来了。(一直也没弄明白)

我使用的服务器是 2003 64 位系统内存 16G。

一个数据文件大概 500M,每次填充 datatable 的时候,一个文件没导完就会报 outofmemory 的错误,内存溢出了??!

很奇怪,按说 64 位的系统应该可以管理很多内存,不存在 32 为的 AWE 的问题。

于是继续尝试在循环内建立小循环,每次导入 datatable 100W 条数据。

导入第一批 100W 成功了,可循环到第二个 100W 的时候还是同样的错误。

看代码,每次导入完成之后,我使用 table.dispose() 清理,可观察资源管理器,内存并没有释放掉。

于是使用 table.rows.clear()

或者使用 table.clear()??

+ GC.collect()

这样基本可以解决内存无法释放的问题,但在实际使用中还是发现内存一直在涨,因为 sqlbulkcopy 时候 sqlserver 也会占用很多内存。

少量日志导入应该不会有问题,但不知道连续导入时会出现什么样的情况

主要代码

 Private Sub readLogfile(ByVal log As FileInfo)
  Dim reader As StreamReader = New StreamReader(log.FullName)

  While Not reader.EndOfStream

  For j As Int32 = 0 To 1000000
  If Not reader.EndOfStream Then
  handleLine(reader.ReadLine())
  i += 1
  Console.WriteLine(j)
  Else
  Exit While
  End If
  Next
  bulkcopy(table1)
  table1.Rows.Clear()
  table1.Clear()
  GC.Collect()

  Console.WriteLine(——————————————— i)

  End While

 Private Sub bulkcopy(ByVal newtable As DataTable)
  Using sqlbulk As SqlBulkCopy = New SqlBulkCopy(Configuration.ConfigurationManager.ConnectionStrings( logAnalysis.My.MySettings.logDBConnectionString).ConnectionString)
  sqlbulk.DestinationTableName = logDB .dbo.Table_1
  sqlbulk.BulkCopyTimeout = 108000
  sqlbulk.WriteToServer(newtable)
  sqlbulk.Close()
  End Using

  End Sub

上述就是丸趣 TV 小编为大家分享的 IIS 日志导入 SQLSERVER 的实例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计1807字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 四虎永久在线精品免费观看地址 | 午夜色站 | 99九九久久| 久久精品国产久精国产爱 | www.亚洲成人 | 99在线观看免费视频 | 国产丝袜在线播放 | 樱花影院电视剧免费 | 亚洲人成无码www久久久 | 日日噜狠狠噜天天噜av | 国产一区二区三四区 | 超碰色偷偷男人的天堂 | 中国妇女做爰视频 | 人人妻人人澡人人爽久久av | 国产日韩欧美精品 | 久草免费福利视频 | 中国欧美日韩一区二区三区 | 露脸啪啪清纯大学生美女 | 男人的天堂中文字幕 | 男人又长又粗又硬又爽视频 | 在线播放葵千惠激烈潮催 | 国产在线一区观看 | 国产激情综合在线观看 | 亚洲一区二区三区精品视频 | 日本高清在线一区二区三区 | 免费一区视频 | 欧美牲交a欧美牲交aⅴ免费下载 | 亚洲日韩乱码中文无码蜜桃臀 | 久久天天躁夜夜躁狠狠 | 女人张腿男生桶视频免费 | 亚洲欧美高清视频 | 国产又色又爽又高潮免费视频麻豆 | 好吊操老鸭窝 | 久久91精品国产91久 | 成年视频在线观看免费 | 人人爽人人澡人人高潮 | 男女超爽视频免费播放 | 伦埋琪琪电影院久久 | 76少妇精品导航 | 精品无码一区二区三区亚洲桃色 | 欧美在线高清视频 |