我試圖在這裏和通過Google找到答案,以瞭解如何控制鏈接服務器ODBC連接的連接。SQL Server鏈接服務器到MySQL「連接太多」
概述
我從SQL Server 2014的MySQL鏈接服務器爲我們的數據倉庫中提取數據的目的。我多次查詢數據庫沒有問題。然後昨天突然從表中讀取的查詢很慢,然後我得到報告說使用這個MySQL數據庫的應用程序出現「連接太多」的錯誤。
詳細
下面的查詢選擇從MySQL和插入數據到SQL Server表。
INSERT INTO tmpCustomers
(fieldlist)
SELECT
myc.contact_id,
myl.franchise_id,
myl.lead_source,
LEFT(RTRIM(myc.first_name) + ' ' + RTRIM(myc.last_name),100) AS Name,
myc.first_name,
myc.last_name,
myc.company,
myc.Email,
myc.primary_phone,
myc.home_phone,
myc.mobile_phone,
myc.work_phone,
myc.fax,
myc.address1,
myc.Address2,
myc.City,
myc.[state],
myc.zip_code,
myc.created_date,
myc.updated_date
FROM [MYSQLDB]...[franchise] myf
INNER JOIN [MYSQLDB]...[leads] myl
ON myl.franchise_id = myf.franchise_id
INNER JOIN [MYSQLDBE]...[contact] myc
ON myc.contact_id = myl.contact_id
該查詢返回大約200K行數據,並且會增長。 MySQL數據庫由我們的客戶羣使用,這是將數據提取到我們的數據倉庫的後端過程。
查詢在過去一週的測試中一直沒有問題,直到昨天,它導致我們的MySQL支持兩次重新啓動MySQL服務器。
ODBC設置是使用「mysql-connector-odbc-5.3.6-win64.msi」版本完成的。我沒有找到任何設置來限制連接數量。 ODBC確實顯示「允許多個語句」,但事實並非如此。它也有「啓用自動重新連接」,我無法想象爲什麼需要一個單一的查詢。
摘要
我不能從連接停止客戶,需要從執行導入時使用太多的連接禁用的過程。
對此的任何輸入將不勝感激。
感謝
KDS
更新:2016 OCT-05
AWS服務器 - M3.xlarge 4 CPU 15吉布 2 40吉布SSD硬盤
我想從我的網絡的傢伙得到一些信息。我在SQL服務器上工作,而不是真正的MySQL。這是第一個試圖從中獲取數據的項目。 MySQL工作臺>管理>客戶端連接顯示「連接限制」:250.第三方公司一直在管理此服務器,儘管它位於內部。有建議是將數據庫複製到同一臺服務器上的另一個數據庫,然後連接到該數據庫。這似乎仍將使用來自服務器的連接。他們是服務器級還是數據庫級連接? – KDS
它是服務器級別的連接,MySQL在模式級別上不起作用。每分鐘執行多少個查詢。另外檢查MySQL中的「顯示進程列表」 – khalid
謝謝khalid 我正在努力獲得該訪問權限。如果我運行「show processlist」,我只能看到我的連接,而不看到其他人的連接。只要我有一些更好的訪問權限,我會立即更新問題。 還原諒我上面的語法錯字。 「他們的建議......」就是我的意思。 – KDS