本文出自我的个人网站【思考者日记】,转载请务必保留此出处。SQLServer2005中对于增、删、改和查询是有某些冲突的,很容易造成死锁。现在有台数据库里的FileDet
本文出自我的个人网站【思考者日记】,转载请务必保留此出处。
SQL Server2005中对于增、删、改和查询是有某些冲突的,很容易造成死锁。现在有台数据库里的FileDetail表是由两套程序来操作的,一套程序负责增、删、改,另一套程序负责查询,结果当数据量大的时候,很容易造成查询的那套程序查询数据很慢,甚至造成死锁的情况。原因是SQL Server2005里的设计机制是插入的时候,死锁的记录只会是某一条,并不影响下一条和上一条,但是纠结的情况来了,你插入的时候是爽了,并不影响你,可是当我查询的时候,如果发现某一条记录被死锁,服务器空间,那么我这条T-SQL查询的结果就是全部死锁,查询不出任何东西。
为了解决这个问题,我们可以使用同步来解决这个问题,将这台数据库分开,我们建立两个FileDetail表,一个用来给增、删、改的程序使用,另一个给查询的程序来调用,这样就可以解决以上的难题。
在SQL Server2005中,同步数据需要:发布服务器、分发服务器和订阅服务器,源数据所在的服务器是发布服务器,负责发表数据。发布服务器把要复制的数据或对象发生的改变复制到分发服务器,分发服务器用来接收数据的所有改变,它包含一个分发数据库,并保存这些改变,再把这些改变分发给订阅服务器。在复制过程中,发布服务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用。订阅服务器是接收复制数据的数据库实例。一个订阅服务器可以从多个发布服务器上接收数据。
下面的例子因为我现在没有那么多资源,只用了本机做测试,我还测试了两台之间的操作,大家有兴趣的可以弄多台来试试。
现在我们来通过SQL Server2005来实现数据同步:
首先我们开启SQL Server代理(默认是禁用的)
正在启动——》启动成功
现在我们来复制下数据库。
点击siccdb右键-任务-复制数据库,出现以下界面
下一步
这里使用SQL Server身份验证,一般建议大家都用这种方式,安全,不会出错。填好之后,下一步。
这里的目标服务器也使用SQL Server身份验证。如果你想使用同一网段下别的计算机的数据库,那么这里的目标服务器可以选择你的远程计算机,注意:远程计算机连接不支持IP和别名,必须使用DoMain登录名(即域计算机登录名)。这里说下我在测试两台计算机同步碰到的问题,我发现登录不了了?
原因
你的计算机改过计算机名
可以使用
SELECT * FROM Sys.SysServers来查询下数据库里的源服务器名
我这里是WILCOM-DEV_SQLS
我们ping下服务器的IP地址,远程登录不上的可以在C:WINDOWSsystem32driversetc下的hosts文件里配置下
下一步:
这里大家可以根据实际情况来选择,默认是第一种,我这里选择第二种,香港服务器租用,因为我的源数据库是不能断开的(断开了就要出大事了,呵呵,开个玩笑)好了,废话不多说,选中后点下一步:
这里默认会勾选你要发布的数据库,状态必须是已存在于目标上才可以发布。好了,我这里没有问题,下一步:
这里是目标数据库,我给改了下目标数据库的名字为siccdb_bak
下面选择如果目标数据库已存在的情况,我选择第一种,下一步。
这里大家可以不要动,保持默认就好。直接下一步
我这里就不选择计划了,大家可以自己试试看计划的执行状态。
如果你发现下面的integration Services代理账号不让选,是灰色的禁止状态,那建议你看下你的SQL Server服务有没有安装这个,如果没有,那悲催了,你就重新运行SQL Server的安装向导重新安装下这个服务吧。(下图的这个服务)
紧接着,下一步
这里就可以完成啦。
OK,复制完毕。
刷新下数据库,我们会发现多了一个siccdb_bak
现在,我们来进行发布这个siccdb数据库,让siccdb_bak来保持和它同步。
选择数据库同级目录下的复制-本地发布-新建发布,启动发布向导。
下一步:
默认第一个,下一步。
这里是存放快照文件的目录,大家默认即可, 免的后面找不到。下一步:
这里我们选择需要发布的数据库,下一步:
这里我们选择快照发布,其他的选项大家可以对照上图中的说明来自己尝试,相信大家都很聪明滴。下一步:
这里我们展开表,可以发现这个库下的所有表,香港服务器,我们可以根据情况来勾选,好了,下一步:
这里我们还可以对选中的表添加SQL语句来筛选,因为我这里用不到,就不给大家做演示了,节约时间,赶紧写教程。下一步:
这里我们需要勾选立即和计划,勾选计划后,我们选择更改
我这里需要实时同步,所以我选择了每天每分钟来进行同步,大家可以根据实际情况来选择,好了,确定。
好了,现在来检查下是否是你选择的计划,下一步:
这里选择安全设置,
上面的信息我在前面已经说过了,如果不知道的,可以参考我前面的说明。填好后,确定。
下一步:
立即发布,下一步:
这里填好发布名称,完成。
OK,一切正常,我们关闭。
本地发布下多了一个[siccdb]:TOB就是我们刚创建的发布,现在我们需要来订阅它,右键本地订阅-新建订阅:
打开订阅向导,下一步:
这里找到了我们的发布源,下一步:
这里选择[推送订阅],简单点,不耽误时间了,下一步:
这里我们选择好订阅服务器和订阅数据库,下一步:
这里我们选好与分发服务器、与订阅服务器的连接:
填好后,确定。
选择连续运行,下一步:
选择连续运行,下一步:
创建订阅,下一步:
好了,这里就完成了。
现在我们在siccdb中增、删、改些数据,我们在一分钟后会发现,siccdb_bak中也同步更新了这些数据。
本文出自我的个人网站【思考者日记】,转载请务必保留此出处。
本文出自 “On My Way” 博客,请务必保留此出处

在數據庫優化中,應根據查詢需求選擇索引策略:1.當查詢涉及多個列且條件順序固定時,使用複合索引;2.當查詢涉及多個列但條件順序不固定時,使用多個單列索引。複合索引適用於優化多列查詢,單列索引則適合單列查詢。

要優化MySQL慢查詢,需使用slowquerylog和performance_schema:1.啟用slowquerylog並設置閾值,記錄慢查詢;2.利用performance_schema分析查詢執行細節,找出性能瓶頸並優化。

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

MySQL異步主從復制通過binlog實現數據同步,提升讀性能和高可用性。 1)主服務器記錄變更到binlog;2)從服務器通過I/O線程讀取binlog;3)從服務器的SQL線程應用binlog同步數據。

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

MySQL的安裝和基本操作包括:1.下載並安裝MySQL,設置根用戶密碼;2.使用SQL命令創建數據庫和表,如CREATEDATABASE和CREATETABLE;3.執行CRUD操作,使用INSERT,SELECT,UPDATE,DELETE命令;4.創建索引和存儲過程以優化性能和實現複雜邏輯。通過這些步驟,你可以從零開始構建和管理MySQL數據庫。

InnoDBBufferPool通過將數據和索引頁加載到內存中來提升MySQL數據庫的性能。 1)數據頁加載到BufferPool中,減少磁盤I/O。 2)臟頁被標記並定期刷新到磁盤。 3)LRU算法管理數據頁淘汰。 4)預讀機制提前加載可能需要的數據頁。

MySQL適合初學者使用,因為它安裝簡單、功能強大且易於管理數據。 1.安裝和配置簡單,適用於多種操作系統。 2.支持基本操作如創建數據庫和表、插入、查詢、更新和刪除數據。 3.提供高級功能如JOIN操作和子查詢。 4.可以通過索引、查詢優化和分錶分區來提升性能。 5.支持備份、恢復和安全措施,確保數據的安全和一致性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境