• SQL Server 和SQL Server Express书籍优化

    发表于 2009年06月17日 魏 拾俊 3 条评论

    SQL Server 和SQL Server Express书籍,如果数据量很大,可以进行优化。优化后,可以获得很好的搜索速度,另外,点击文章里面的链接,反应速度也大大加快。

    准备软件

    1. CyberArticle最新测试版本(2009年6月17号以及以后的版本)。从这个版本开始,优化了节点操作速度,支持SQL Server数据库全文搜索语法。
    2. SQL Server Management Studio或者SQL Server Management Studio Express,分别对应SQL Server和SQL Server Express。其中SQL Server Management Studio可以和SQL Server一起安装,SQL Server Management Studio Express可以在微软的网站下载。本文使用SQL Server 2008 180天开发版本。

    注意:默认情况下,CyberArticle无法连接到 SQL Server 2008 / SQL Server Express 2008 数据库,请点击这里查看解决办法

    开启SQL Server全文搜索功能

    1、在SQL Server Management Studio中,找到书籍数据库,在数据库名称上面点击右键,在菜单中选择属性

    2、出现的对话框中,选择File,然后选择 Use full-text indexing(使用全文检索索引)。

    点击OK(确定)按钮,关闭对话框。

    3、展开数据库名节点,定位到数据库名StorageFull Text Catalogs,在这个节点上面,点击右键,选择 New Full-Text Catalog。

    在出现的对话框里面,按照下图输入:

    点击OK(确定)按钮就可以了。

    4、展开数据库名节点,定位到数据库名Tablesdbo.Nodes,在这个节点上面,点击右键,选择 Full-Text index -> Define Full-Text index:

    在出现的向导中,依次点击Next(下一步)按钮。在选择列的对话页面中,按照下面的方式选择:

    在跟踪修改的页面中,根据自己的需要进行选择:

    • 自动
    • 手工
    • 不跟踪修改

    这些选项,主要用来设置 数据修改后,如何更新全文搜索引擎的方式。

    然后下一步,选择Catalog,选择我们刚才创建的cyberarticle即可。

    然后一直下一步,直至完成。此时,就设置好了全文搜索。您需要等待数据库进行全文索引的建立。这个过程可能需要很长的时间,例如几个小时甚至一整天或者更长,数据库的体积,也会不断地增大(我测试的数据库,从4G一直增加到8G,还没有结束)。

    在CyberArticle里面启用数据库的全文搜索功能

    在CyberArticle里面,打开书籍,然后在书籍节点上面,点击右键,选择“属性”,在属性对话框里面,切换到数据库Tab:

    选中下面的“This database support full text search”。然后点击确定按钮。就可以在CyberArticle里面使用数据的全文搜索功能进行搜索。

    测试结果

    • 硬件:Thinkpad T42, 1.7G CPU, 1G内存,160G 5400转硬盘。
    • 软件:Windows 7 RC,SQL Server 2008 开发版。
    • 数据库:Nodes表有144057条数据,139013条记录是文章,数据库体积,在没有全文搜索之前3G多,增加全文检索后,7G多(还未完成)。

    搜索速度比较:(最多返回50条记录)

    • 优化前:搜索中文字符串,需要5分钟甚至更长的时间
    • 优化后:15秒内,出现结果

    在文章浏览器内点击一个链接,CyberArticle需要对这个链接进行搜索,查找是否已经保存在书籍中。

    • 优化前:几分钟都没有反应
    • 优化后:10秒内正确打开已经保存的网页

    结论

    利用优化后的数据库和CyberArticle,可以极大的加快搜索速度。因此,对于企业用户,按照上面的方式进行优化后,利用CyberArticle和SQL Server,完全可以胜任大型的知识库建立,并获得良好的效率。毕竟从上面的测试看,一个很老的笔记本,就可以达到这样的效率,如果更换成专用的数据库服务器,效率可以更高。

    其它

    如果您需要进行测试,请向我索取最新的支持数据库全文检索的CyberArticle测试版本。如果CyberArticle新的版本已经发布,请直接下载使用。

  • 让CyberArticle支持SQL Server 2008或者SQL Server Express 2008

    发表于 2009年06月17日 魏 拾俊 1 条评论

    默认安装的SQL Server 2008或者SQL Server Express 2008,CyberArticle无法连接到数据库。请按照下面的方式设置:

    开始菜单 -> 所有程序 -> SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager。

    打开SQL Server Configuration Manager,切换到 SQL Server Network Configuration -> Protocols for MSSQLSERVER,如下图:

    在右边的TCP/IP上面,点击右键,菜单中选择Enable (启用)。

    然后停止并重新启动SQL Server服务,就可以了:

    处理后,CyberArticle就可以正常连接到SQL Server 2008数据库了。