什么叫做数据库的并发,我看到定义上是说:多个用户同时在使用一个数据库,我们就可以说这个数据库支持并发。
那么我可以这么理解吗?新浪某个应用同时在线人数为2亿,那么表示新浪的数据库并发量为2亿?
并发量为2亿,如果sort_buffer_size设置为1M的话,read_buffer_size,join_buffer_size设置也都设置为1M的话,那岂不是2亿*3,至少得有6亿/1024/=58593.7500(G),那数据库不是总共需要6W左右的内存啊,天了,就算用集群的话,一个节点64个G,68593.75/64=915.52734375,总共需要916个节点,需要安置近千台pc服务器。
这得需要多大的机房,存放这么多数据库服务器呢?
这样的应用再多几个,光PC服务器机器的购买以及维护得花费多少money,难怪it界流行一句话,啥高性能都是money堆出来的啊!
我自己都感觉出自己理解的比较浅薄了,欢迎大家指点!
我们做数据库并发的数量,要区别于在线人数。
比如一个用户平均100秒进行一次数据库操作,那你所谓在线2亿人的话,数据库并发就在每秒200W。这显然是需要一个分布式系统才能达到的。
其实你问了一个很好的问题,就是数据库每秒能处理多少个并发操作,估计真正做过测试的人也不多吧。
我去年是测到400多个写操作,当然这取决于你的服务器性能,业内据说能做到500-1000吧。
上篇文章中, 我们总结了SharePoint里的timeout相关的设置, 文章中我们说到SQL端的选项是不会有什么影响的. 为什么这么说呢?
笔者这一块原来也是晕乎乎. 于是去咨询SQL的资深高级技术支持工程师Peter, 得到了如下的答案.
1. 与SQL相关的timeout, 都是由Client端发起的.
比如说, 我们自己写了个C#小程序, 其中使用了SqlCommand.CommandTimeout属性, 指定它的值为20秒. 那么, 当这个query在SQL端执行了二十秒后, 我们的C#小程序会给SQL Server发送一个TDS Tension数据包, 告诉SQL Server我这边超时了, 你那边的query不用做了. 于是SQL相应client的请求, 断掉connection. Client端报出一条exception, 说SQL Server端的运行时间太长, 超过了我们原定的时限.
2. 那么SQL Server Management Studio中有如下两个有关Timeout的选项, 他们是干什么的呢?
- a. Tools->Options->Query Exection->Execution time-out.
- b. Right click SQL Server Node->Properties->Connections->Remote Query Timeout.
如果我们把Management Studio看作是我们自己写的C#程序, 在这个程序中我们只写下来要执行的语句, timeout设置呢? 这里的a选项指定的值就是SqlCommand.CommandTimeout. 好懂吧. ^_^
假设我们的C#小程序连接到SQL Server 1上运行存储过程取数据, 在这个存储过程中, SQL Server 1需要到SQL Server 2上去取原始数据. 那么, 如果SQL Server 2上的查询执行了600秒之后(默认值), 那么SQL Server 1会发给SQL Server 2, 告诉它这个查询我嫌它太久, 你不要做了. 于是SQL Server 1 发给SQL Server 2一个数据包, 告诉它停吧. 然后Server 2断掉他们之间的Connection.
由此可见, 在一般情况下, b选项与我们关系不是很大.
我在研究这两个选项的时候, 发现StackOverFlow.com上的网友问起相关的问题, 回答问题的人经常给出这两个选项. 其实这是错误的. 调整了之后也不会对SQL端运行超时的问题有改善的.
相关推荐
Conn.Properties("Connect Timeout") = 15 '以秒为单位 Conn.open DSNtest 如果遇到查询超时的错误,可以在程序中修改Recordset对象的超时设置,然后打开结果集。 例如: Dim cn As New ADODB.Connection Dim rs ...
1. 配置Web.config:在Web应用程序的配置文件中,需要将`<sessionState>`元素的`mode`属性设置为"SQLServer",并指定SQL Server存储过程的连接字符串。 ```xml mode="SQLServer" connectionString="Data Source...
### PostgreSQL与MS SQL Server在过程语言中的差异 在数据库领域,PostgreSQL 和 MS SQL Server 都是非常受欢迎的关系型数据库管理系统。两者在很多方面都提供了强大的功能支持,但在具体实现细节上存在不少差异。...
除了在 web.config 文件中设置会话超时时间外,我们还可以在 Global.asax 文件中使用 `Session_Start` 事件来设置会话超时时间。例如: ``` void Session_Start(object sender, EventArgs e) { Session.Timeout =...
在SQL Server 配置中启用 AWE(Address Windowing Extensions),通过设置`maxservermemory`参数指定可以使用的内存大小。 - **Windows 2000 Datacenter**:此版本支持最多32GB的物理内存。需要注意的是,在使用...
在Ruby on Rails框架中,与SQLServer 2000集成可能会比与其他常见的数据库系统(如MySQL或PostgreSQL)稍复杂一些,因为SQLServer 2000的兼容性问题和缺少官方支持。然而,通过一些第三方库和适当的配置,我们仍然...
- **连接超时**:如果连接超时,可尝试调整`connection_timeout`设置。 - **字符集问题**:可能需要设置`CharacterSet`选项以匹配数据库编码,如`'CharacterSet' => 'UTF-8'`。 - **命名策略**:若使用了SQL ...
在IT领域,尤其是在数据库管理与优化中,理解并解决SQL Server数据库中的死锁问题是一项至关重要的技能。死锁,作为并发事务处理中的一个常见问题,指的是两个或更多的事务在执行过程中,因争夺相同的资源而造成的...
- `Connect Timeout`:设置连接超时时间,例如`Connect Timeout=30`表示30秒内未建立连接则超时。 - `Application Name`:设置应用程序的名称,有助于追踪连接,如`Application Name=myApp`。 4. **连接字符串的...
Get the most out of the rich development capabilities of SQL Server 2016 to build efficient database applications for your organization About This Book Utilize the new enhancements in Transact-SQL ...
useSSL=false&serverTimezone=UTC"; String username = "myUser"; String password = "myPassword"; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, ...
12. `@@LOCK_TIMEOUT`:返回当前会话的锁超时设置(以毫秒计),有助于防止死锁问题。 13. `@@MAX_CONNECTIONS`:显示SQL Server允许的最大并发连接数,可了解系统的并发能力。 14. `sp_configure`:执行此存储...
执行前须在mysql中建立和sqlserver中对应表字段相符的...复制耗时根据数据量大小而定,每秒可复制5M左右数据,如果要复制的数据量很大,请临时设置php.ini中的timeout的时间更多些,比如设置为180秒,防止复制失败。
- **Connection Timeout**:连接超时时间,单位为秒。 示例连接字符串如下: ```text Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; ``` 或者使用Windows...
4. **连接超时 (Connection Timeout)**:在尝试建立连接失败后等待的时间(以秒为单位)。 5. **信任连接 (Integrated Security)**:设置是否使用Windows集成身份验证。"True"表示使用,"False"则使用提供的用户名...
SqlDependency.Start(connectionString, timeout: TimeSpan.FromMinutes(60)); // 设置为60分钟 ``` 8. **权限要求**:为了使SqlDependency工作,数据库用户需要被授予`VIEW DATABASE STATE`权限,以便服务器可以...
useSSL=false&serverTimezone=UTC`。 在实际应用中,还应注意数据库连接池的使用,如Apache Commons DBCP、HikariCP或C3P0,它们能有效管理和复用数据库连接,提高性能并减少资源消耗。 此外,确保你的Java环境和...
要配置使用 SQL Server 进行会话状态管理,需要在应用程序的 Web.config 文件中设置 `sessionState` 元素,如下所示: ```xml <sessionState mode="SQLServer" stateConnectionString="tcpip=127.0.0.1:42424" ...
C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例 本文主要介绍了使用C# Ado.net实现读取SQL Server数据库存储过程列表及参数信息的方法,通过实例形式总结分析了C#针对SQL Server数据库存储过程及...