跨mysql服務器查詢sql,sql server跨數據庫查詢

本文目錄一覽:

mysql如何實現跨數據庫查詢並按where子

1、where型子查詢

(把內層查詢結果當作外層查詢的比較條件)

#不用order by 來查詢最新的商品

select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);

#取出每個欄目下最新的產品(goods_id唯一)

select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id);

2、from型子查詢

(把內層的查詢結果供外層再次查詢)

#用子查詢查出掛科兩門及以上的同學的平均成績

思路:

#先查出哪些同學掛科兩門以上

select name,count(*) as gk from stu where score 60 having gk =2;

#以上查詢結果,我們只要名字就可以了,所以再取一次名字

select name from (select name,count(*) as gk from stu having gk =2) as t;

#找出這些同學了,那麼再計算他們的平均分

select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk =2) as t) group by name;

3、exists型子查詢

(把外層查詢結果拿到內層,看內層的查詢是否成立)

#查詢哪些欄目下有商品,欄目表category,商品表goods

select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id);

Sqlservice跨庫執行插入/查詢Mysql的問題

oracle 10g的DBMS_XPLAN包中display_cursor函數不同於display函數,display_cursor用於顯示SQL語句的真實的執行計劃,在大多數情況下,

顯示真實的執行計劃有助於更好的分析SQL語句的全過程,尤其是運行此SQL語句實時的I/O開銷。通過對比預估的I/O與真實的I/O開銷來判斷

SQL語句所存在問題,如缺少統計信息,SQL語句執行的次數,根據實際中間結果集的大小來選擇合適的連接方式等。本文僅僅講述

display_cursor函數的使用。

一、display_cursor函數用法

1、display_cursor函數語法

DBMS_XPLAN.DISPLAY_CURSOR(

sql_id IN VARCHAR2 DEFAULT NULL,

cursor_child_no IN NUMBER DEFAULT NULL,

format IN VARCHAR2 DEFAULT ‘TYPICAL’);

2、display_cursor函數參數描述

sql_id

指定位於庫緩存執行計劃中SQL語句的父游標。默認值為null。當使用默認值時當前會話的最後一條SQL語句的執行計劃將被返回

可以通過查詢V$SQL 或V$SQLAREA的SQL_ID列來獲得SQL語句的SQL_ID。

cursor_child_no

指定父游標下子游標的序號。即指定被返回執行計劃的SQL語句的子游標。默認值為0。如果為null,則sql_id所指父游標下所有子游標

的執行計劃都將被返回。

format

控制SQL語句執行計劃的輸出部分,即哪些可以顯示哪些不顯示。使用與display函數的format參數與修飾符在這裡同樣適用。

除此之外當在開啟statistics_level=all時或使用gather_plan_statistics提示可以獲得執行計劃中實時的統計信息

有關詳細的format格式描述請參考:dbms_xplan之display函數的使用 中format參數的描述

下面給出啟用統計信息時format新增的修飾符

iostats 控制I/O統計的顯示

last 默認,顯示所有執行計算過的統計。如果指定該值,則只顯示最後一次執行的統計信息

memstats 控制pga相關統計的顯示

allstats 此為iostats memstats的快捷方式,即allstats包含了iostats和memstats

run_stats_last 等同於iostats last。只能用於oracle 10g R1

run_stats_tot 等同於iostats。只能用於oracle 10g R1

抓一個最近一小時最消耗IO的SQL:

SELECT sql_id, COUNT(*)

FROM gv$active_session_history ash, gv$event_name evt

WHERE ash.sample_time SYSDATE – 1 / 24

AND ash.session_state = ‘WAITING’

AND ash.event_id = evt.event_id

AND evt.wait_class = ‘User I/O’

GROUP BY sql_id

ORDER BY COUNT(*) DESC;

執行上面的SQL:

SQL SELECT sql_id, COUNT(*)

FROM gv$active_session_history ash, gv$event_name evt

2 3 WHERE ash.sample_time SYSDATE – 1 / 24

4 AND ash.session_state = ‘WAITING’

5 AND ash.event_id = evt.event_id

6 AND evt.wait_class = ‘User I/O’

7 GROUP BY sql_id

8 ORDER BY COUNT(*) DESC;

SQL_ID COUNT(*)

————- ———-

g7fu6qba82m6b 668

63r47zyphdk06 526

9f5m4wd88nc1h 514

593p47drw5fhk 232

br91w16jzy4fu 120

4fvwyjpnh6tp7 78

gm0nrbfuj8kzr 70

2184k363hw4xd 68

gc4dajs7g5myy 46

8vrk9sfuwfdgq 42

ccpnb4dwdmq21 40

查看SQL的執行計劃:

SELECT * FROM TABLE(dbms_xplan.display_cursor(‘g7fu6qba82m6b’));

在SQLPLUS中執行:

SQL set pagesize 2000

SQL SELECT * FROM TABLE(dbms_xplan.display_cursor(‘g7fu6qba82m6b’));

PLAN_TABLE_OUTPUT

————————————————————————————————————————

SQL_ID g7fu6qba82m6b, child number 0

————————————-

UPDATE “CPDDS_PDATA”.”CDM_LEDGER” SET “CSTM_NAME” = :a1,”CSTM_NO” =

:a2,”PAPER_TYPE” = :a3,”PAPER_NO” = :a4,”CURR_TYPE” = :a5,”SVT_NO” =

:a6,”BAL_DIR” = :a7,”BAL” = :a8,”AVAL_BAL” = :a9,”NORM_FRATIO” =

:a10,”PK_BAL” = :a11,”DR_ACCU” = :a12,”CR_ACCU” = :a13,”LAST_TRAN_DATE” =

:a14,”LAST_TRAN_TIME” = :a15,”PRT_LINE_NUM” = :a16,”NOREG_PK_REC_NUM” =

:a17,”PK_NO” = :a18,”PWD” = :a19,”FLAG” = :a20,”FRZ_FLAG” =

:a21,”CARD_HOLD_FLAG” = :a22,”PK_HOLD_FLAG” = :a23,”BGN_INT_DATE” =

:a24,”OPEN_DATE” = :a25,”ACC_HOLD_FLAG” = :a26,”CLS_DATE” =

:a27,”OPEN_TLR” = :a28,”CLS_TLR” = :a29,”CLS_INT” = :a30,”OPEN_INST” =

:a31,”ADD_NUM” = :a32,”DAC” = :a33,”FRZ_TIMES1″ = :a34,”FRZ_TIMES2″ =

:a35,”HOST_SEQNO” = :a36,”D_UPDATE_DATE” = :a37 WHERE “ACC” = :b0

Plan hash value: 319441092

———————————————————————————–

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

———————————————————————————–

| 0 | UPDATE STATEMENT | | | | 3 (100)| |

| 1 | UPDATE | CDM_LEDGER | | | | |

|* 2 | INDEX UNIQUE SCAN| I_CDM_LEDGER | 1 | 269 | 2 (0)| 00:00:01 |

———————————————————————————–

Predicate Information (identified by operation id):

—————————————————

2 – access(“ACC”=:B0)

29 rows selected.

總結

1、與display函數不同,display_cursor顯示的為真實的執行計劃

2、對於format參數,使用與display函數的各個值,同樣適用於display_cursor函數

3、當statistics_level為all或使用gather_plan_statistics提示可以獲得執行時的統計信息

4、根據真實與預估的統計信息可以初步判斷SQL效率低下的原因,如統計信息的準確性、主要的開銷位於那些步驟等

mysql跨服務器查詢

當然是不能直接跨服務器查詢了。但是,如果你有足夠的權限,可以變通一下。就是MYSQL的同步複製

使s2作為s1的從服務器,同步數據庫d1到s2,這樣s1做了更改後s2上也會有d1且d1也會隨之改變數據,再在s2上執行同台服務器上的跨庫查詢就方便多了

關於如何設置“MYSQL的複製”,請到網站下載MYSQL參考手冊,裡邊有詳細的說明

如果不明白,可以HI我

如何在mysql中進行跨服務器或者跨端口查詢,就像sql server中的鏈接服務器一樣的

創建鏈接服務器,

之後就可以直接使用,例如:

select from 鏈接服務器名.odb.[database].[table]

sql數據庫中跨不同數據庫服務器的查詢

–SQL Server跨服務器查詢

–創建鏈接服務器(連接的保密要自己想辦法解決啦!)

exec sp_addlinkedserver ‘LKSV’, ‘ ‘, ‘SQLOLEDB’, ‘遠程服務器名或ip地址’ 

exec sp_addlinkedsrvlogin ‘LKSV’, ‘false ‘,null, ‘用戶名’, ‘密碼’

–查詢實例

select * from LKSV.數據庫名.dbo.表名

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/207166.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-08 14:21
下一篇 2024-12-08 14:21

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • 服務器安裝Python的完整指南

    本文將為您提供服務器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • STUN 服務器

    STUN 服務器是一個網絡服務器,可以協助網絡設備(例如 VoIP 設備)解決 NAT 穿透、防火牆等問題,使得設備可以正常地進行數據傳輸。本文將從多個方面對 STUN 服務器做詳…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 解決docker-compose 容器時間和服務器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與服務器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • 如何選擇MySQL服務器文件權限

    MySQL是一種流行的關係型數據庫管理系統。在安裝MySQL時,選擇正確的文件權限是保證安全和性能的重要步驟。以下是一些指導您選擇正確權限的建議。 一、權限選擇 MySQL服務器需…

    編程 2025-04-27
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27

發表回復

登錄後才能評論