●SQL权限和用户问题
数据库MMDB分配了两个用户
AAA
BBB
-------------------------------------
角色方面我给的是System Administrators
数据库访问角色中允许public、db_owner两项
-------------------------------------
AAA用户提供给应用程序,用来将数据存储到数据库中
BBB用户提供给Web,用来网页查询数据库中的数据
-------------------------------------
现在问题是有时候用网页查询,出现超时已过期错误,或者是80XXXX,ODBC错误(偶尔时候)
但绝对不是网页和select查询语句问题
当我把AAA的程序关闭后,网页又正常了
【1】会不会是我SQL用户设成独占方式了?上边我得设置是否正确?
【2】两个用户一个大批量写数据库,一个大批量读数据库,你们一般怎么解决的?
问题点数:100、回复次数:8Top
1 楼zjcxc(邹建)回复于 2005-04-21 15:59:10 得分 10
不关权限设置的事
是锁造成的,比如某个用户正在处理大量数据,如果他进行了表的更新/删除/插入,sql需要锁定表以保证处理不会混乱(独占锁),
此时另一用户再访问这个表就必须等待前面的用户处理完成
如果前面的用户处理很长时间都还没有完成(等待的时间根据你的查询超过时间),则会出错.Top
2 楼xuhongying8848(偶遇-邂逅)回复于 2005-04-21 16:18:28 得分 10
锁是SQL SERVER 自带的吧。
能更改吗?Top
3 楼netcoder(朱二)回复于 2005-04-21 16:22:35 得分 20
在你的Web应用程序,修改查询语句,加上NOLOCK选项,即允许脏读
比如:
select * from employees WITH ( NOLOCK)
这样一样,查询可以立即返回Top
4 楼netcoder(朱二)回复于 2005-04-21 16:23:08 得分 20
ELECT 语句中“加锁选项”的功能说明
SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。
功能说明:
NOLOCK(不加锁)
此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。Top
5 楼netcoder(朱二)回复于 2005-04-21 16:23:35 得分 20
SELECT 语句中“加锁选项”的功能说明
SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。
功能说明:
NOLOCK(不加锁)
此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。Top
6 楼swordqj(飞扬~~)回复于 2005-04-28 08:27:34 得分 10
up,又学会一朝Top
7 楼swordqj(飞扬~~)回复于 2005-04-28 08:27:44 得分 10
maskTop
8 楼chichunhua(無愧與心)回复于 2005-04-28 08:33:29 得分 0
學了一招Top




