SQL Server 2012 的新功能

那麼,您需要幫助在 sql 中編寫問題嗎?你明白了!您將發現一些可以在幾秒鐘內開始使用的理想方法,這些方法肯定會補償您數年尋找的時間。

好吧,我承認,我也是開發者。所以,我讓我的 MCDBA 來炫耀我認出了關於數據庫的一兩件事。所以,最近我做的 DBA 工作比程序工作還要多。是的,我能聽到你在哭泣“叛徒!” 我實際上已經走到了黑暗的一面;“後端”。

幸運的是,我可以(用一句很累的話”)感覺到你的不適。許多程序員將數據庫視為某種所需的邪惡。根據我的經驗,普通開發人員只知道足夠的 SQL 來插入、升級和刪除數據庫中的單個記錄。讓 DBA 處理粗糙的事情。但是,許多開發人員無法聯繫 DBA(至少不樂意與他們合作),因此需要自己制定 SQL。同樣,想像一下你一定會獲得同行的尊重,你一定會獲得奢侈的加薪,當你能夠讓“愚蠢的點走得更快”時,你肯定會獲得聖徒提名。

因此,以下是我發現標準“Joe Developer”可以實施以增加他們的問題反應時間的 3 大交易。

一:開發中的一切功能!
首先,讓我們假設一下外部包。我知道我說過我將提供有關如何使您的查詢更快的想法……和我一樣。儘管如此,這可能有點偏離常規。然而,這不是創造了一個了不起的想法嗎?你還沒有聽過一百遍的東西?

這就是背景:應用程序仍在容器中,運行良好,並且開始推出。幾天之內,您開始聽SQL 中級課程,並聽到有關應用程序組件運行緩慢的傳言。這些抱怨很快變成了援助票。這些協助票很快就會成為與負責人和客戶的會議。這些會議經常發展成酗酒……你明白了。

這種不利的情況經常出現,並且有一個相當簡單的解決方案。您會看到,由於您的晉升數據庫中有相當多的文檔,因此無論您的成長環境如何一直表現良好!當然,如果我的主表中只有 30 條記錄,我的應用程序肯定也會出色地工作!一旦它進入現實世界,以及幾十萬或無數的記錄被輸入或導入,對效率調整的需求最終成為一個至關重要的表現。

補救措施很簡單;在您的晉升氛圍中創造完全相同數量的記錄,正如您在運營的第一年肯定會預期的那樣。如果您有可導入的數據(聲明,來自遺產系統或第 3 方提要),他們會將它們泵入。如果您沒有,那麼之後有幾個開源能量可以創建非常接近您的實際數據的模擬數據。現在,當您最初撰寫問題時,如果您需要專注於特定的調查以防止未來的偏頭痛和諮詢費用,您將有一個真正的好主意。

B) 了解您的索引。

許多開發人員完全無視索引。有幾個不明白。索引只是數據源表中數據的目錄。在開發應用程序時,打印出由索引組成的數據源架構,以便您在編寫問題時識別它們是什麼。如果遺漏了一個合適的人,請讓一個對索引有經驗的人來開發它(無論是你、牆外的程序員還是 DBA)。

這就是影響。假設您正在編寫與管理系統取得聯繫。您很可能有一個包含給定名稱、姓氏等的表。為了簡單起見,我們將所有這些都保存在一個帶有明顯字段名稱的大表中。你可能會寫一個看起來像這樣的問題:。

選擇 Person_ID、Name_First、Name_Last。

來自 Person_Data。

其中 Name_Last = @NameLast。

並且 Name_First = @NameFirst。

有 100 行,這將立即生效。然而,隨著您的數據源擴展到數千條記錄,問題將減少,最終達到秒級。如果您僅包含包含 Name_Last 和 Name_First 列的索引,那麼在應用程序的整個生命週期內,您肯定會立即獲得返回時間。