惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
L
LangChain Blog
Jina AI
Jina AI
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
Project Zero
Project Zero
T
Threat Research - Cisco Blogs
量子位
G
GRAHAM CLULEY
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
C
Cisco Blogs
Scott Helme
Scott Helme
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
V
V2EX
博客园 - 三生石上(FineUI控件)
T
Tor Project blog
P
Proofpoint News Feed
雷峰网
雷峰网
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
PCI Perspectives
PCI Perspectives
博客园_首页
L
LINUX DO - 最新话题
IT之家
IT之家
有赞技术团队
有赞技术团队
博客园 - Franky
Hacker News: Ask HN
Hacker News: Ask HN
Last Week in AI
Last Week in AI
The Cloudflare Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
AWS News Blog
AWS News Blog
S
Security Affairs
T
Tailwind CSS Blog

博客园 - squirrel_sc

强人工智能:抑制神经元的意义 强人工智能基本问题:全局控制与自组织 程序员,为未来准备好了吗? 强人工智能基本问题:自上而下,还是自下而上。 强人工智能基本问题:神经网络分层还是不分层 什么阻碍了强人工智能的发展 人类和强人工智能的关系(人类会被灭掉吗?) 为什么需要强人工智能 神经网络和机器学习、强人工智能 重新开张! 招全职asp.net中高级程序员 遍历所有session并取值 使用批处理出现奇怪的现象 asp.net设置默认按钮的一种方法(041217更新) httpcompress实际效果能有多少? 轻量级的数据库访问类 041104版 vb.net和C#开发环境和开发效率的比较 被.net郁闷的一天 IE5下通过、不会被列表框遮挡的日期控件
大Sql的切分执行
squirrel_sc · 2004-11-04 · via 博客园 - squirrel_sc

    以前一直觉得sql应该减少传递次数,减少和数据库的通信,这样可以提高效率。但现在发现,凡事都有个度的问题,由于业务需要一次性插入大概4000条数据,如果有并发操作,很容易就造成sql超时错误。于是就写了一个能够拆分大sql执行的函数。

    '执行大sql语句,传入为StringBuilder以提高效率。
    Public Shared Sub ExecuteBigSql(ByRef sbSql As System.Text.StringBuilder, Optional ByVal startWord As String = "insert into"Optional ByVal groupNumber As Integer = 500)
        
Dim str As String
        
Dim bGoOn As Boolean = True
        
Dim iStart As Integer = 0
        
Dim iNext As Integer = 0
        
str = sbSql.ToString()
        
While (bGoOn)
            iStart 
= iNext
            
For i As Integer = 0 To groupNumber
                iNext 
= str.IndexOf(startWord, iNext)
                
If (iNext < 0Then
                    bGoOn 
= False
                    
Exit For
                
Else
                    iNext 
+= startWord.Length
                
End If
            
Next
            
If (iNext >= 0Then
                iNext 
-= startWord.Length
            
End If

            
If (iNext > 0Then
                ExecuteSql(
str.Substring(iStart, iNext - iStart))
            
Else
                ExecuteSql(
str.Substring(iStart))
            
End If
        
End While
    
End Sub

startWord参数为每个单独sql语句的开始特征。这种情况一般都是insert语句。这里要注意大小写的问题,否则不会被拆开的,倒不会执行不了。
groupNumber为分组的大小。还没上线测试,现在估计500句,经过实践检验再调整。
单独执行sql的部分ExecuteSql很简单,详情请参考:
http://www.cnblogs.com/squirrel_sc/archive/2004/11/04/60447.html

---------------------------

http://www.cnblogs.com/squirrel_sc

1. 如有引用,请包含本段文字及原始出处。以表示对作者的尊重,且能将有相似想法的人联系起来。

2. 如无特殊说明,本文的文字代表作者的观点和想法。由于人类的记忆和连通性的限制,可能会将别人的观点和想法当成自己的(会尽量避免,但我读书少,别蒙我:D);或有人会有同样的想法(那就太好了)。若有此类情况,请联系我。我会很高兴更新内容。

3. 每篇文章会根据反馈或新的想法,随时更新。我会尽量记得更新版本号。