找回密码
 立即注册

QQ登录

只需一步,快速开始

meteor
金牌服务用户   /  发表于:2023-11-26 14:11  /   查看:1170  /  回复:9
协作工程,开发时,如果测试运行页面时,在页面中更新了数据库的数据后,在设计器总是会要求签出一些表,这个过程有明显的卡顿。
并且不知道这个请求签出前是不是还需要访问到某些其他的API,有时候会卡很久,设计器处于假死状态,要等待一会儿,再会弹出请求签出的提示。

以上,
在开发时,对数据的修改一般意义上不应该涉及到签出代码的需求,不太了解活字格数据表的签出机制,正常理解,应当是对表结构有所修改,才需要签出。但是目前是数据修改也会要求签出表,比如内置表等,十分影响到开发的流程性和体验感

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

9 个回复

倒序浏览
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2023-11-27 10:08:20
沙发
大佬,看了一下,您现在您实际遇到的问题是,测试后同步数据,同步数据需要签出数据表,而签出数据表又很卡。那如果我们优化一下性能,让签出数据表的时候性能比较好,那修改数据的时候签出数据表对您有什么影响么。
或者说您这里是希望的时候签出表的时候不要那么卡,还是希望的是修改数据的时候就不需要签出数据表呢
回复 使用道具 举报
meteor
金牌服务用户   /  发表于:2023-11-27 15:51:34
板凳
Lay.Li 发表于 2023-11-27 10:08
大佬,看了一下,您现在您实际遇到的问题是,测试后同步数据,同步数据需要签出数据表,而签出数据表又很卡 ...

修改数据的时候不需要签出数据表
回复 使用道具 举报
meteor
金牌服务用户   /  发表于:2023-11-27 16:05:59
地板
meteor 发表于 2023-11-27 15:51
修改数据的时候不需要签出数据表

数据表在协同开发是有些模糊的。
  • 从正常的用例而言,在协同开发的独占式签出数据表的时候,表示这个数据表的结构修改权此刻被某个开发人员独占了,别人是不可以再对这个表结构进行处理的。
  • 但是,仅仅是独占了数据表结构的修改权,并没有独占表内的数据,所以此刻,其他应用,或者开发者是可以正常读写表内数据的。
  • 当然,如果极端情况,如果我签出表结构,准备删除其中的部分字段,那么其他人在读写的时候必然会出现问题。那这里你们应该是有通过引用关联来解决这个问题了,即如果这个字段被引用了,是不能被删除的。
  • 反过来说,如果我只是修改了表中的数据,并无意修改表结构,并没有对其他的开发者使用这张表造成影响,所以也就不应该视作“我需要要签出这张表”
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-11-28 10:08:18
5#
刘总,你忽略了一个事,活字格的内置数据库是SQLite,这个数据库是一个文件型数据库

既然是文件型,不管是表结构还是增加删除数据,对一个文件来说都需要锁定;而且更狠的是,这个文件是所有内置表是一个文件,而不是一个数据表一个文件(这个是SQLite的特性),所以不存在是修改结构还是数据的情况,不管你怎么搞都必须整库迁出

为了大家使用其他更加方便,活字格开发时,设计器和浏览器是两个数据库sqlite,所以你发现浏览器中增删改了数据以后,设计器会问你是否同步数据库,你要点击同步,他就要去协同服务器上看一下,是不是有人已经将数据库迁出,没有的话才让你迁出

另外,我和我们的开发同事详细的沟通了一下,此时活字格在进行的工作:
因为选择了同步数据,所以活字格必须对比所有的表(内置库和外联库),外联表在协同下尤其慢,是因为还需要去比对刷新完了外联表是不是一样的,如果是一样的就不需要签出,如果不一样就需要迁出
耗时最长的事情应该是在做,刷新所有外联表,如果外联表比较多,或者外联库太慢,或者外联库最大连接数配置得太低,都会遇到这个情况


如果你想快,从设计器把同步数据功能关了即可

另外,活字格10.0中我们正在调查如何解决这个问题呢
回复 使用道具 举报
meteor
金牌服务用户   /  发表于:2023-11-28 11:49:58
6#
Simon.hu 发表于 2023-11-28 10:08
刘总,你忽略了一个事,活字格的内置数据库是SQLite,这个数据库是一个文件型数据库

既然是文件型,不管 ...

是的,自带的SQLLite表是例外,结构和数据同体。
但是实际操作中,我测试时,并非修改内置SQLite表的数据,而是修改SQLServer中数据,也会提示说要签出内置的表。这点就十分困惑了
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-11-28 23:06:46
7#
不能吧,我这边做了一个简单的demo,发现不是这样的啊
会不会是你有什么服务端命令啊?或者遇到了我们的bug
回复 使用道具 举报
可可杰
初级会员   /  发表于:2024-2-21 15:02:38
8#
Simon.hu 发表于 2023-11-28 10:08
刘总,你忽略了一个事,活字格的内置数据库是SQLite,这个数据库是一个文件型数据库

既然是文件型,不管 ...

这样的话,如果我把外联库的数据清空能不能解决卡顿的问题
回复 使用道具 举报
true
中级会员   /  发表于:2024-2-21 17:31:44
9#
Simon.hu 发表于 2023-11-28 10:08
刘总,你忽略了一个事,活字格的内置数据库是SQLite,这个数据库是一个文件型数据库

既然是文件型,不管 ...

胡总,在MySQL数据库最大连接数默认时并且表比较多时,修改连接字符串时,会弹出大量Too many connections
回复 使用道具 举报
Patrick.Zhu
银牌会员   /  发表于:2024-2-23 14:51:08
10#
建议截图下你的操作过程和报错,重新发帖,好了解整个过程
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部