在本文中,我们将为您详细介绍快速SQLServer搜索40M文本记录的相关知识,并且为您解答关于sqlserver全文搜索的疑问,此外,我们还会提供一些关于c#–执行插入更新命令时从SQLServer
在本文中,我们将为您详细介绍快速SQL Server搜索40M文本记录的相关知识,并且为您解答关于sql server 全文搜索的疑问,此外,我们还会提供一些关于c# – 执行插入更新命令时从SQL Server搜索数据时出现TIMEOUT问题、mssqlserver提示错误 80040e31 ([ODBC SQL Server Driver]超时、sql server 2008 报错:(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)、sql server2000mdf文件可以导入到sql server2012中的有用信息。
本文目录一览:- 快速SQL Server搜索40M文本记录(sql server 全文搜索)
- c# – 执行插入更新命令时从SQL Server搜索数据时出现TIMEOUT问题
- mssqlserver提示错误 80040e31 ([ODBC SQL Server Driver]超时
- sql server 2008 报错:(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
- sql server2000mdf文件可以导入到sql server2012中
快速SQL Server搜索40M文本记录(sql server 全文搜索)
我有一个SQL Server2005数据库,其中的表包含4000万条记录。每个记录包含一列,该列存储用逗号分隔的关键字列表。每个关键字都是字母和数字的组合。关键字最长为7个字符,平均每条记录有15个关键字。关键字在各行之间不是唯一的。
我想搜索全部或部分关键字。
我创建了全文索引,其中显示了328,245,708个唯一键数。搜索效率对于4个或更多字符的查询(在测试机上大约 100毫秒
)来说很好,但是对于3个或更少字符的查询(在测试机上最多 3s )来说太慢了。
我一直在尝试CONTAINSTABLE
和具有类似结果的CONTAINS
查询'[query]*'
。
我认为简短查询的性能会较慢,因为简短单词在不同记录之间的重复频率更高。
对结果进行排序不是至关重要的,我一直在尝试返回TOP X
从中排序为Rank的结果CONTAINSTABLE
。这不能提供理想的性能。
对于简短查询,如何使此搜索更快?
c# – 执行插入更新命令时从SQL Server搜索数据时出现TIMEOUT问题
我有一个在ASP.NET MVC中开发的Web应用程序,上面的数据库是在这个应用程序的后端.此应用程序通过过滤此数据库的表中的相关记录来显示不同的报告.此应用程序也操纵记录.
当我在Windows服务导入XML文件期间运行应用程序与数据库交互时,我的Web应用程序挂起,并在很长一段时间后发生超时错误.
我在Windows服务的存储过程中使用简单的插入更新命令,并且这些存储过程中没有事务.
请告知任何解决方案以避免此问题.
解决方法
首先,在单个事务中推送500MB的整个数据是不可取的.
然后创建必要的保存点,如果所有事务都成功,最后提交它.
因为不建议长时间保持连接对象.如果您仍然需要,可以尝试增加sql server超时.但这是一个糟糕的方法.
最好是拆分xml内容并尝试使用保存点并最终提交所有事务.
不要以为你只是做一个简单的插入或更新命令.如果列上有索引,则这些记录需要很长时间.
确保您拥有正确的索引并且只有必要的索引.
如果您有任何疑问,请在此处回复.您在当前代码中使用的方法是什么?
mssqlserver提示错误 80040e31 ([ODBC SQL Server Driver]超时
使用mssqlserver数据库的朋友可能碰到过关于,如:Microsoft OLE DB Provider for SQL Server 错误 \''80040e31\'' ([ODBC SQL Server Driver]超时已过期),下面我总结了一些解决办法。
原因: .
数据库设置时,[文件增长]按百分比来增长,当数据库文件很大时(1G以上),新增操作都会报超时,而这时候其实CPU、内存占用率都非常非常的低。 ..
解决方法:
把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节。 !
2.SQL Server数据库超时设置 .
修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒。 。
企业管理器中的设置: .
A、在企业管理器中,选择菜单上的"工具",再选择"选项"; ...
B、在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡; .
C、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。 ..
查询分析器中的设置: .
单击“工具”->"选项"->"连接"; 将登录超时设置为一个较大的数字,连接超时改为0。 对真正的成功者来说,不论他的生存条件如何,都不会自我磨灭
3.查询语句时超时 ..
原因分析: ..
查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。 对真正的成功者来说,不论他的生存条件如何,都不会自我磨灭
另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。 ..
而造成超出估计值那么多的原因有两种可能: .
一是估计时间不准确; 。
二是sql语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。 .
解决办法: .
A.优化语句,创建使用合适的索引; !
B.解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS
sql server 2008 报错:(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
对于这个错误可以从以下几个方面进行排查(参照文章http://blog.csdn.net/laga516/article/details/7696577):
1,如果安装的时候 已经选择 “混合模式(SQL Server 身份验证和Windows 身份验证)(M)”, 并且已经为 SQL Server 系统管理员分配了账户和密码
则不用重新配置。 配置方法如下:
用Windows 验证方法登录数据库 选择实例->右键 ->属性 ->安全性 -> 选择 “SQL Server 和 Windows 身份验证模式” -> 确定
用Windows 验证方法登录数据库 选择实例->右键 ->属性 -> 安全性->登录名->双击用户名(一般为sa)->设置密码
2,开始菜单->所有程序->Microsoft SQL Server 2008 ->配置工具 ->
SQL Server 配置管理器->网络配置->MSSQLSERVER2008->双击“TCP/IP” ->协议->已启用-> 选 “是”
SQL Server 配置管理器->网络配置->MSSQLSERVER2008->双击“TCP/IP” ->IP地址->IPAll->TCP端口->输入"1433" 点击确定
3,开始菜单->所有程序->Microsoft SQL Server 2008 ->配置工具 ->SQL Server 配置管理器->SQL Server服务-> SQL Server (MSSQLSERVER2008)->右键重新启动
4,在命令行下输入netstat –an,如果找到有“0.0.0.0:1433”,就说明SqlServer在监听了。
5,操作系统->安全中心->Windows 防火墙-> 例外->添加程序
C:\Program Files\Microsoft SQLServer\90\Shared\sqlbrowser.exe
C:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\Binn\sqlservr.exe
6,操作系统->安全中心->Windows 防火墙-> 例外->添加端口 1433
注:Windows 2008 R2系统 参照文章http://blogs.msdn.com/b/walzenbach/archive/2010/04/14/how-to-enable-remote-connections-in-sql-server-2008.aspx
7、还有就是有些公司对所有员工内部电脑做了域访问管理,这时候,当数据库服务选择为NETWORKSERVICE的时候,在数据库登陆页面,可以通过以下方式查找指定的本地实例:
另外:
1. 用Run as a administrator打开命令提示符里输入NET STOP MSSQLSERVER, 即停止MSSQLSERVER运行。
2. 在命令提示符里输入 NET START MSSQLSERVER /m, 将SQL Server 2008 启动为单用户模式。
3. 用Administrator账号登录SQL Server 2008。
4. SQL Server已经是单用户模式启动即只允许一个用户连接,这时单击“New Query”会报错“Login failed for user. Reason: Server is in single user mode. Only one administrator can connect at this time”。
5. 这时右击实例名,单击“断开连接”,关闭“对象资源管理器”,然后再点击“New Query”就可以连接了,你可以使用命令 ALTER Login sa enable 重新开启SA 账户,ALTER LOGIN [sa] WITH PASSWORD=N''1234qwer''修改密码。
6. 现在关闭SQL Server,在命令提示符下 输入 NET STAR MSSQLSERVER 正常启动SQL Server,你就可以sa 账户来登录SQL Server了。
sql server2000mdf文件可以导入到sql server2012中
1、附加数据库
2、“添加”mdf文件所在路径
3、选择“脚本”,确定
出现如下查询语句:
4、单击执行,即可
备注:执行时可能会因为权限不足而报错;解决办法如下
1)修改文件权限即可
【右键】该mdf文件和ldf文件,选择【属性】,选择【安全】,选择【自己的用户】,【编辑】,添加【完全控制】,最后应用保存即可:
关于快速SQL Server搜索40M文本记录和sql server 全文搜索的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于c# – 执行插入更新命令时从SQL Server搜索数据时出现TIMEOUT问题、mssqlserver提示错误 80040e31 ([ODBC SQL Server Driver]超时、sql server 2008 报错:(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)、sql server2000mdf文件可以导入到sql server2012中的相关知识,请在本站寻找。
本文标签: