zoukankan      html  css  js  c++  java
  • 为什么透过链接服务器写入,速度会很慢

    为什么透过链接服务器写入,速度会很慢
     
    原因是 通过链接服务器写入时,是逐行写入数据库,逐行insert,触发触发器等等
    ,写入的数据有几行,就触发几次触发器,inserted,deleted等系统表每次只有一行数据
     
    如果是同一台服务器插入的时,一个sql命令是批量插入的,只触发一个触发器,inserted,deleted会有多行数据
     
    测试用例:
    建表: 
    CREATE TABLE [dbo].[TEST_BATINSERT](
        [PLUCODE] [varchar](20) NULL,
        [SCANCODE] [varchar](20) NULL
    ) ON [PRIMARY]
     
    建触发器:
    CREATE TRIGGER [dbo].TEST_BATINSERT_INSERT
    ON [dbo]. [TEST_BATINSERT]
    FOR INSERT
    AS
    BEGIN
                    IF UPDATE (plucode)
                    BEGIN
    IF (select len( ltrim(rtrim (plucode))) from inserted ) > 2--这种写法当isnerted只有一行数据时,可以执行通过,有多行数据时,语法不正确,会报错
                    BEGIN
                                   IF isnumeric ((select ltrim(rtrim (plucode)) from inserted )) = 1
                                   BEGIN
                                                  SELECT 1
                                   END
                    END
                    END
    END
    测试语句
    语句1
    INSERT TEST_BATINSERT( PLUCODE,SCANCODE )
    SELECT TOP  1 PLUCODE,SCANCODE
    FROM TEST_BATINSERT_1
      测试结果,没问题,说明触发器中的inserted语句只有一行数据
    语句2
    INSERT TEST_BATINSERT( PLUCODE,SCANCODE )
    SELECT TOP 2 PLUCODE,SCANCODE
    FROM TEST_BATINSERT_1
        测试结果:不正常。说明触发器中的inserted语句有多行数据
     
    在另外一台服务器上执行:
    语句1
    INSERT [LNKSER]. LNKDB.dbo .TEST_BATINSERT( PLUCODE,SCANCODE )
    SELECT TOP 1 productNo,productNo
    FROM [TEST_BATINSERT_1]
     
      测试结果,没问题,说明触发器中的inserted语句只有一行数据
    语句2
    INSERT [LNKSER]. LNKDB.dbo .TEST_BATINSERT( PLUCODE,SCANCODE )
    SELECT TOP 2 productNo,productNo
    FROM TEST_BATINSERT_1
     
      测试结果,没问题,说明触发器中的inserted语句只有一行数据
     
    结论:如果要进行跨服务器交换数据,尽量用链接服务器进行读操作,避免进行写和删的操作。
  • 相关阅读:
    基于51单片机数码管显示经ADC0808转化1K电位器分压5V模拟量为数字量的项目工程
    基于51单片机数码管显示经ADC0808转化1K电位器分压5V模拟量为0V-5V数字量的项目工程
    浅谈移动端过长文本溢出显示省略号的实现方案
    浅谈自动化测试
    Tomcat 优雅关闭之路
    InnoDB 事务加锁分析
    Tomcat 9.0.26 高并发场景下DeadLock问题排查与修复
    Kotlin 协程真的比 Java 线程更高效吗?
    Spark 数据倾斜及其解决方案
    大数据平台架构设计探究
  • 原文地址:https://www.cnblogs.com/wanyong117/p/5764644.html
Copyright © 2011-2022 走看看