今天在项目中发现了这样一个问题:每次数据提效后执行的很慢[大概要等上三十秒左右,B/S结构,服务器在企业内部]。
比如:在表table1中有如下数据[用户a在某些模块中拥有这些权限] ID userName ModuleName[实际中用ID表示]
1 a A模块查询
2 a B模块录入
3 a C模块修改
4 a D模块删除现在需要修改用户"a"的权限,假如现在要给用户"a"加上“A模块录入”的权限
以前的做法是:先将用户"a"的权限全部删除,后然重新写入。 ID userName ModuleName[实际中用ID表示]
1 a A模块查询
2 a B模块录入
3 a C模块修改
4 a D模块删除
5 a A模块录入小弟觉得这样做好像有点不合理。本在存在的也要删除后再写入。这样不是增加了数据操作的时间吗?
请大虾们给个好的建议。注:每次传过来的参数是该用户所拥有的所有权限的ID及该用户ID。
比如:在表table1中有如下数据[用户a在某些模块中拥有这些权限] ID userName ModuleName[实际中用ID表示]
1 a A模块查询
2 a B模块录入
3 a C模块修改
4 a D模块删除现在需要修改用户"a"的权限,假如现在要给用户"a"加上“A模块录入”的权限
以前的做法是:先将用户"a"的权限全部删除,后然重新写入。 ID userName ModuleName[实际中用ID表示]
1 a A模块查询
2 a B模块录入
3 a C模块修改
4 a D模块删除
5 a A模块录入小弟觉得这样做好像有点不合理。本在存在的也要删除后再写入。这样不是增加了数据操作的时间吗?
请大虾们给个好的建议。注:每次传过来的参数是该用户所拥有的所有权限的ID及该用户ID。
这没有什么好说的。
如果每次把以前的都delete,在insert刚delete的,本身就是有问题的。
如果像我们的系统这样,有的用户权限数量在几万个,岂不是要产生大量的redo,效率底下.