zoukankan      html  css  js  c++  java
  • 框架设计:实现数据的按需更新与插入的改进用数据对比进一步说明

    在发布完:框架设计:实现数据的按需更新与插入的改进 之后:

    有网友表示不理解,于是这里给出一篇简单的说明对比,表示下改进后好处。

     

    一:场景一:循环5次,同样也是重复提交的问题

     

                using (MAction action = new MAction(TableNames.Blog_User))
                {
                    for (int i = 0; i < 5; i++)
                    {
                        action.Set(Users.ID, 18);
                        action.Set(Users.UserName, "cyq1162");
                        action.Update();
                    }
                        Response.Write(action.DebugInfo);//输出调试信息
                }

     

    1:旧模式生成的SQL:

    说明:

    我们很直观的看到它重复的更新了5次。

     

    2:改进后生成的SQL:

    说明:

    改进后,只是更新一次,其它四次并没有操作数据库。

     

    二:场景二:模块缓存场景,其实和第一场景相似

     

                MDataRow userInfo=null;//模拟行数据缓存
                using (MAction action = new MAction(TableNames.Blog_User))
                {
                    if (action.Fill(18))
                    {
                        userInfo = action.Data;
                    }
                }
                using (MAction action = new MAction(userInfo))//从缓存加载
                {
                    action.Set(Users.UserName, "cyq1162");
                    action.Update();
                    Response.Write(action.DebugInfo);
                }

     

    1:旧模式生成的SQL:

    说明:

    无论存不存在缓存,更新同样被触发。

     

    2:改进后生成的SQL:

    说明:

    有缓存数据时,相同的数据更新,则不会再被更新。

     

    三:结论好处

     

    实质性的减少数据库操作,从数据框架底层有效的防止无效的点击事件。

  • 相关阅读:
    学习动态性能表 第五篇V$SESSION
    学习动态性能表 第八篇V$LOCK
    学习动态性能表 第十九篇V$UNDOSTAT
    学习动态性能表 第四篇(1)V$SQLTEXT
    学习动态性能表 第十六篇V$ROWCACHE
    学习动态性能表 第十八篇V$SYSTEM_EVENT
    备份打开的数据库脚本
    学习动态性能表 第九篇V$FILESTAT
    学习动态性能表 第六篇(1)V$SESSION_WAIT
    学习动态性能表 第二十篇V$WAITSTAT
  • 原文地址:https://www.cnblogs.com/cyq1162/p/2005299.html
Copyright © 2011-2022 走看看