场景如下:我有一些数据库模型,每天大约有 500K 新记录。数据库几乎从不更新(仅插入语句和删除)。
许多用户希望使用 PowerBI 等工具对数据库执行查询,但我没有向任何人授予任何访问权限以防止死锁(我只允许特定的 IT 管理资源访问数据)。
我想开放数据访问,但我必须防止任何人阻止新记录插入。
假设由于没有执行更新而没有创建脏读,我可以创建一个内部嵌套无锁的视图吗?
这是一个可以接受的设计吗?我知道这不是一个完美的解决方案,而且这并不意味着。
这是一种折衷方案,允许没有 SQL 技能的用户执行即席查询和查找。
我可能遗漏了什么吗?
我认为你可以在查询中的表名前面使用“WITH (NoLock)”,例如:
SELECT * FROM [table Name] WITH (NoLock)
我知道这是一个旧线程,但这对于 READPAST 来说是理想的选择...... 它将跳过锁定的行。不更新 不锁定现有行。如果你的假设是错误的,你会得到错误的结果