2014-03-12 89 views
3

我正在運行SQL Server 2012並通過最新的MySQL ODBC驅動程序建立到Linux MySQL實例的鏈接服務器連接。對於返回相當直接的「選擇」查詢結果所花費的時間,我感到有點失望。SQL Server 2012鏈接服務器到MySQL緩慢選擇查詢

select * from OPENQUERY(LinkedServer, 'select * from mysqltable') 

表格大約有150,000行,大約需要70秒才能將結果返回給SSMS。相反,如果我通過My​​SQL客戶端應用程序(在本例中是Navicat Essentials,與SQL Server在同一臺機器上)查詢表,查詢將在大約1秒內執行。

我知道鏈接服務器和ODBC的速度會比較慢,但是我對這種性能問題感到驚訝,特別是對於這樣一個簡單的查詢。

我已經嘗試過Unicode和ANSI驅動程序,性能也差不多。 MySQL DB是UTF-8 CharSET和Coalition,表是InnoDB。我試過明確選擇列而不是*。再次沒有區別。

有沒有人經歷過這個,並得到任何提示加速表現或這是相當正常的?

在此先感謝。

+0

您正在使用的MySQL客戶端應用程序是否只在您滾動瀏覽結果集時發回前幾行然後檢索其他行?我知道蟾蜍在連接到Oracle時執行此操作,有時會讓您認爲查詢的運行速度比將所有行一起返回的速度快得多。 – BateTech

+0

這是一個有趣的建議。我會檢查日誌中的其他查詢。 – pugu

+0

我們使用我們定期更新的登臺表(每3小時一次)。根據您的數據的可用性和最新情況,這可能是一個可行的解決方案。 – mitchimus

回答

0

在鏈接的服務器 我不認爲有可能顯着改善 但你可以嘗試通過SSIS 並使用批量插入。