當前位置:首頁 » 編程語言 » sql語句游標快速定位
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql語句游標快速定位

發布時間: 2022-05-26 09:37:00

1. sql中幾個快速定位語句

1, 查找表或SP相互引用的對象SELECT DISTINCT OBJECT_NAME(referencing_id) AS sp_nameFROM sys.sql_expression_dependencies (NOLOCK)
WHERE referenced_entity_name = '查找表或SP'ORDER BY sp_name123456
2, 在Sp中模糊查找字元SELECT DISTINCT b.name
FROM dbo.syscomments a, dbo.sysobjects b
WHERE a.id=b.id and a.text like '%%'12345
3,查看錶欄位被哪些SP更新SELECT o.name SpName, c.name ColumnName, d.is_updated, d.is_selected, d.is_select_all
FROM sys.objects o
JOIN sys.sql_dependencies d ON o.object_id = d.object_id
JOIN sys.objects o2 ON o2.object_id = d.referenced_major_id
JOIN sys.columns c ON c.object_id = d.referenced_major_id
AND c.column_id = d.referenced_minor_id
WHERE o2.name = 'Sales_Tax_Sku_Mapping'

2. 如何解決SQL Server查詢速度緩慢的問題

優化SQL Server查詢速度的方法:

1、把數據、日誌、索引放到不同的I/O設備上,增加讀取速度,以前可以將Tempdb應放在RAID0上,SQL2000不在支持。數據量(尺寸)越大,提高I/O越重要.

2、縱向、橫向分割表,減少表的尺寸(sp_spaceuse)

3、升級硬體

4、根據查詢條件,建立索引,優化索引、優化訪問方式,限制結果集的數據量。注意填充因子要適當(最好是使用默認值0)。索引應該盡量小,使用位元組數小的列建索引好(參照索引的創建),不要對有限的幾個值的欄位建單一索引如性別欄位

5、提高網速;

6、擴大伺服器的內存,Windows 2000和SQL server 2000能支持4-8G的內存。

配置虛擬內存:虛擬內存大小應基於計算機上並發運行的服務進行配置。運行 Microsoft SQL Server? 2000 時,可考慮將虛擬內存大小設置為計算機中安裝的物理內存的 1.5 倍。如果另外安裝了全文檢索功能,並打算運行 Microsoft 搜索服務以便執行全文索引和查詢,可考慮:將虛擬內存大小配置為至少是計算機中安裝的物理內存的 3 倍。將 SQL Server max server memory 伺服器配置選項配置為物理內存的 1.5 倍(虛擬內存大小設置的一半)。

7、增加伺服器CPU個數;但是必須明白並行處理串列處理更需要資源例如內存。使用並行還是串列程是MsSQL自動評估選擇的。單個任務分解成多個任務,就可以在處理器上運行。例如耽擱查詢的排序、連接、掃描和GROUP BY字句同時執行,SQL SERVER根據系統的負載情況決定最優的並行等級,復雜的需要消耗大量的CPU的查詢最適合並行處理。但是更新操作UPDATE,INSERT, DELETE還不能並行處理。

8、如果是使用like進行查詢的話,簡單的使用index是不行的,但是全文索引,耗空間。 like ''a%'' 使用索引 like ''%a'' 不使用索引用 like ''%a%'' 查詢時,查詢耗時和欄位值總長度成正比,所以不能用CHAR類型,而是VARCHAR。對於欄位的值很長的建全文索引。

9、DB Server 和APPLication Server 分離;OLTP和OLAP分離

10、分布式分區視圖可用於實現資料庫伺服器聯合體。

聯合體是一組分開管理的伺服器,但它們相互協作分擔系統的處理負荷。這種通過分區數據形成資料庫伺服器聯合體的機制能夠擴大一組伺服器,以支持大型的多層 Web 站點的處理需要。有關更多信息,參見設計聯合資料庫伺服器。(參照SQL幫助文件''分區視圖'')

a、在實現分區視圖之前,必須先水平分區表

b、在創建成員表後,在每個成員伺服器上定義一個分布式分區視圖,並且每個視圖具有相同的名稱。這樣,引用分布式分區視圖名的查詢可以在任何一個成員伺服器上運行。系統操作如同每個成員伺服器上都有一個原始表的復本一樣,但其實每個伺服器上只有一個成員表和一個分布式分區視圖。數據的位置對應用程序是透明的。

11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收縮數據和日誌 DBCC SHRINKDB,DBCC SHRINKFILE.設置自動收縮日誌.對於大的資料庫不要設置資料庫自動增長,它會降低伺服器的性能。

在T-sql的寫法上有很大的講究,下面列出常見的要點:首先,DBMS處理查詢計劃的過程是這樣的:

1、查詢語句的詞法、語法檢查

2、將語句提交給DBMS的查詢優化器

3、優化器做代數優化和存取路徑的優化

4、由預編譯模塊生成查詢規劃

5、然後在合適的時間提交給系統處理執行

6、最後將執行結果返回給用戶。

其次,看一下SQL SERVER的數據存放的結構:一個頁面的大小為8K(8060)位元組,8個頁面為一個盤區,按照B樹存放。

12、 Commit和rollback的區別 Rollback:回滾所有的事物。 Commit:提交當前的事物.沒有必要在動態SQL里寫事物,如果要寫請寫在外面如: begin tran exec(@s) commit trans 或者將動態SQL 寫成函數或者存儲過程。

13、在查詢Select語句中用Where字句限制返回的行數,避免表掃描,如果返回不必要的數據,浪費了伺服器的I/O資源,加重了網路的負擔降低性能。如果表很大,在表掃描的期間將表鎖住,禁止其他的聯接訪問表,後果嚴重。

14、SQL的注釋申明對執行沒有任何影響

15、盡可能不使用游標,它佔用大量的資源。如果需要row-by-row地執行,盡量採用非游標技術,如:在客戶端循環,用臨時表,Table變數,用子查詢,用Case語句等等。游標可以按照它所支持的提取選項進行分類:只進必須按照從第一行到最後一行的順序提取行。FETCH NEXT 是唯一允許的提取操作,也是默認方式。可滾動性可以在游標中任何地方隨機提取任意行。游標的技術在SQL2000下變得功能很強大,他的目的是支持循環。有四個並發選項 READ_ONLY:不允許通過游標定位更新(Update),且在組成結果集的行中沒有鎖。 OPTIMISTIC WITH valueS:樂觀並發控制是事務控制理論的一個標准部分。樂觀並發控制用於這樣的情形,即在打開游標及更新行的間隔中,只有很小的機會讓第二個用戶更新某一行。當某個游標以此選項打開時,沒有鎖控制其中的行,這將有助於最大化其處理能力。如果用戶試圖修改某一行,則此行的當前值會與最後一次提取此行時獲取的值進行比較。如果任何值發生改變,則伺服器就會知道其他人已更新了此行,並會返回一個錯誤。如果值是一樣的,伺服器就執行修改。選擇這個並發選項?OPTIMISTIC WITH ROW VERSIONING:此樂觀並發控制選項基於行版本控制。使用行版本控制,其中的表必須具有某種版本標識符,伺服器可用它來確定該行在讀入游標後是否有所更改。在 SQL Server 中,這個性能由 timestamp 數據類型提供,它是一個二進制數字,表示資料庫中更改的相對順序。每個資料庫都有一個全局當前時間戳值:@@DBTS。每次以任何方式更改帶有 timestamp 列的行時,SQL Server 先在時間戳列中存儲當前的 @@DBTS 值,然後增加 @@DBTS 的值。如果某個表具有 timestamp 列,則時間戳會被記到行級。伺服器就可以比較某行的當前時間戳值和上次提取時所存儲的時間戳值,從而確定該行是否已更新。伺服器不必比較所有列的值,只需比較 timestamp 列即可。如果應用程序對沒有 timestamp 列的表要求基於行版本控制的樂觀並發,則游標默認為基於數值的樂觀並發控制。 SCROLL LOCKS 這個選項實現悲觀並發控制。在悲觀並發控制中,在把資料庫的行讀入游標結果集時,應用程序將試圖鎖定資料庫行。在使用伺服器游標時,將行讀入游標時會在其上放置一個更新鎖。如果在事務內打開游標,則該事務更新鎖將一直保持到事務被提交或回滾;當提取下一行時,將除去游標鎖。如果在事務外打開游標,則提取下一行時,鎖就被丟棄。因此,每當用戶需要完全的悲觀並發控制時,游標都應在事務內打開。更新鎖將阻止任何其它任務獲取更新鎖或排它鎖,從而阻止其它任務更新該行。然而,更新鎖並不阻止共享鎖,所以它不會阻止其它任務讀取行,除非第二個任務也在要求帶更新鎖的讀取。滾動鎖根據在游標定義的 SELECT 語句中指定的鎖提示,這些游標並發選項可以生成滾動鎖。滾動鎖在提取時在每行上獲取,並保持到下次提取或者游標關閉,以先發生者為准。下次提取時,伺服器為新提取中的行獲取滾動鎖,並釋放上次提取中行的滾動鎖。滾動鎖獨立於事務鎖,並可以保持到一個提交或回滾操作之後。如果提交時關閉游標的選項為關,則 COMMIT 語句並不關閉任何打開的游標,而且滾動鎖被保留到提交之後,以維護對所提取數據的隔離。所獲取滾動鎖的類型取決於游標並發選項和游標 SELECT 語句中的鎖提示。

16、用Profiler來跟蹤查詢,得到查詢所需的時間,找出SQL的問題所在;用索引優化器優化索引

17、注意UNion和UNion all 的區別。UNION all好

18、注意使用DISTINCT,在沒有必要時不要用,它同UNION一樣會使查詢變慢。重復的記錄在查詢里是沒有問題的

19、查詢時不要返回不需要的行、列

20、用sp_configure ''query governor cost limit''或者SET QUERY_GOVERNOR_COST_LIMIT來限制查詢消耗的資源。當評估查詢消耗的資源超出限制時,伺服器自動取消查詢,在查詢之前就扼殺掉。 SET LOCKTIME設置鎖的時間

21、用select top 100 / 10 Percent 來限制用戶返回的行數或者SET ROWCOUNT來限制操作的行

22、在SQL2000以前,一般不要用如下的字句

", "!=", "!>", "!<", "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE", and "LIKE ''%500''",因為他們不走索引全是表掃描。也不要在WHere字句中的列名加函數,如Convert,substring等,如果必須用函數的時候,創建計算列再創建索引來替代.還可以變通寫法:WHERE SUBSTRING(firstname,1,1)= ''m''改為WHERE firstname like ''m%''(索引掃描),一定要將函數和列名分開。並且索引不能建得太多和太大。NOT IN會多次掃描表,使用EXISTS、NOT EXISTS ,IN , LEFT OUTER JOIN 來替代,特別是左連接,而Exists比IN更快,最慢的是NOT操作.如果列的值含有空,以前它的索引不起作用,現在2000的優化器能夠處理了。相同的是IS NULL,「NOT", "NOT EXISTS", "NOT IN"能優化她,而」<>」等還是不能優化,用不到索引。

23、使用Query Analyzer,查看SQL語句的查詢計劃和評估分析是否是優化的SQL。一般的20%的代碼占據了80%的資源,我們優化的重點是這些慢的地方。

24、如果使用了IN或者OR等時發現查詢沒有走索引,使用顯示申明指定索引: SELECT * FROM PersonMember (INDEX = IX_Title) WHERE processid IN (『男』,『女』)

25、將需要查詢的結果預先計算好放在表中,查詢的時候再SELECT。這在SQL7.0以前是最重要的手段。例如醫院的住院費計算。

26、MIN()和 MAX()能使用到合適的索引。

27、資料庫有一個原則是代碼離數據越近越好,所以優先選擇Default,依次為Rules,Triggers, Constraint(約束如外健主健CheckUNIQUE……,數據類型的最大長度等等都是約束),Procere.這樣不僅維護工作小,編寫程序質量高,並且執行的速度快。

28、如果要插入大的二進制值到Image列,使用存儲過程,千萬不要用內嵌INsert來插入(不知JAVA 是否)。因為這樣應用程序首先將二進制值轉換成字元串(尺寸是它的兩倍),伺服器受到字元後又將他轉換成二進制值.存儲過程就沒有這些動作:方法:Create procere p_insert as insert into table(Fimage) values (@image),在前台調用這個存儲過程傳入二進制參數,這樣處理速度明顯改善。

3. 請問pl sql developer有沒有快捷鍵可以讓我游標放在哪一行,然後按快捷鍵就執行這一行sql語句啊,謝謝

設置參數,自動選中游標所在行的sql即可
tools->preferences->sql window->autoSelect Statement

然後按F8就會執行游標所在行。

要注意的是,游標所在行需要以;結尾,否者會報錯。

4. vb中怎麼把sql資料庫中的游標移動到某一行

比如要獲得五行數據
;;select
top
1
from
(select
top
5
*
from

)a
order
by
欄位
一段sql
寫在你調用的sql語句裡面,,,獲取的就是第五行數據了;;;夠詳細吧,,,,

5. ado中如何定位游標在access資料庫中的位置

暈 增加到資料庫中的數據肯定是在最後加的 除非你自己索引 就算索引 也不能完全控制位置

========================================
你可以用ID做編號,然後使用SQL語句找到准確位置
例如
select * from 表 where id=34
這就是找出 id 為34 的位置的數據
關於SQL 你可以去學學。也不是一句兩句話的事情了!

6. PLSQL如何將游標快速轉到第一個字元

直接設置下滑鼠事件onmousedown就可以的
<body>
<script>
function s(e,a)
{
if ( e && e.preventDefault )
e.preventDefault();
else
window.event.returnValue=false;
a.focus();

}
</script>
<textarea id="anan" onmousedown="s(event,this)"></textarea>
</body>
</html>

7. sql語句定位資料庫

USE [資料庫名]--要打開的資料庫名
GO

Select * from [表]--要進行查詢的表名

8. SQL資料庫列表中 輸入表名 游標怎麼自動移動到表名上

輸入d就會到以d開頭的表名,如果具體就連續快速的打'dbo.bbb',不過一般輸個前三位就差不多了 ,是從前到後排序的,不會出現你輸『bbb』能得到『dbo.bbb』,只會得到以bbb開頭的表

9. 如何用慢查詢快速定位執行慢的SQL

慢查詢可以幫助企業找到執行慢的SQL,開啟了慢查詢日誌,並設置了相應的慢查詢時間閾值之後,只需要查詢時間大於這個閾值的SQL語句都會保存在慢查詢日誌中,然後就可以通過工具提取到想要查找的SQL語句了。對於懂這方面知道的技術人才可能並不是很難,但對於沒有接觸過的人員來說還是比較復雜的,其實你可以可以找第三方提供商幫你做這些服務,聽雲有了解過嗎?聽雲提供數字化業務運維解決方案,圍繞企業的信息化與數字化業務提供一套覆蓋用戶端、網路、伺服器端全棧實時的監控與大數據智能分析平台,對於慢的SQL就可以快遞的跟蹤定位問題、解決問題。

10. PL/sql 按哪個快捷鍵可以選中一行的sql語句

轉到行號。 CTRL+G

下表列出 SQL Server 查詢分析器提供的所有鍵盤快捷方式。
活動 快捷方式
書簽:清除所有書簽。 CTRL-SHIFT-F2
書簽:插入或刪除書簽(切換)。 CTRL+F2
書簽:移動到下一個書簽。 F2 功能鍵
書簽:移動到上一個書簽。 SHIFT+F2
取消查詢。 ALT+BREAK
連接:連接。 CTRL+O
連接:斷開連接。 CTRL+F4
連接:斷開連接並關閉子窗口。 CTRL+F4
資料庫對象信息。 ALT+F1
編輯:清除活動的編輯器窗格。 CTRL+SHIFT+DEL
編輯:注釋代碼。 CTRL+SHIFT+C
編輯:復制。還可以使用 CTRL+INSERT。 CTRL+C
編輯:剪切。還可以使用 SHIFT+DEL。 CTRL+X
編輯:減小縮進。 SHIFT+TAB
編輯:在編輯器窗格中刪除至行尾。 CTRL+DEL
編輯:查找。 CTRL+F
編輯:轉到行號。 CTRL+G
編輯:增大縮進。 TAB
編輯:使選定內容為小寫。 CTRL+SHIFT+L
編輯:使選定內容為大寫。 CTRL+SHIFT+U
編輯:粘貼。還可以使用 SHIFT+INSERT。 CTRL+V
編輯:刪除注釋。 CTRL+SHIFT+R
編輯:重復上次搜索或查找下一個。 F3 功能鍵
編輯:替換。 CTRL+H
編輯:全選。 CTRL+A
編輯:撤消。 CTRL+Z
執行查詢。還可以使用 CTRL+E (針對向後兼容性)。 F5 功能鍵
SQL 查詢分析器幫助。 F1 功能鍵
對所選 Transact-SQL 語句的幫助。 SHIFT+F1
瀏覽:在查詢窗格和結果窗格之間切換。 F6 功能鍵
瀏覽:切換窗格。 Shift+F6
瀏覽:窗口選擇器。 CTRL+W
"新建查詢"窗口。 CTRL+N
對象瀏覽器(顯示/隱藏)。 F8 功能鍵
對象搜索。 F4 功能鍵
分析查詢並檢查語法。 CTRL+F5
列印。 CTRL+P
結果:以表格格式顯示結果。 CTRL+D
結果:以文本格式顯示結果。 CTRL+T
結果:移動拆分器。 CTRL+B
結果:將結果保存為文件。 CTRL+SHIFT+F
結果:顯示結果窗格(切換)。 CTRL+R
保存。 CTRL+S
模板:插入模板。 CTRL+SHIFT+INSERT
模板:替換模板參數。 CTRL+SHIFT+M
優化:顯示預估執行計劃。 CTRL+L
優化:顯示執行計劃(切換開/關)。 CTRL+K
優化:索引優化向導。 CTRL+I
優化:顯示客戶統計 CTRL+SHIFT+S
優化:顯示伺服器跟蹤。 CTRL+SHIFT+T
使用資料庫。 CTRL+U(王朝網路 wangchao.net.cn)
-