KB3135244 - Microsoft SQL Server 的 TLS 1.2 支援
https://support.microsoft.com/zh-tw/topic/kb3135244-microsoft-sql-server-%E7%9A%84-tls-1-2-%E6%94%AF%E6%8F%B4-e4472ef8-90a9-13c1-e4d8-44aad198cdbe
2021年9月1日 星期三
TLS 1.2 Support for SQL Server 2008, 2008 R2, 2012 and 2014
2021年8月31日 星期二
舊版本SQL Server 2012 Native Client和ODBC Driver 11 for SQL Server資料庫驅動程式不支援TLS 1.2
ODBC Driver for SQL Server最新版已經出到17
https://docs.microsoft.com/zh-tw/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver15
SQL Server Native Client 11 (SNAC)因為已經是時代的眼淚,最新版就是QFE版
https://www.microsoft.com/en-us/download/details.aspx?id=50402
1.1 - 安裝 ODBC Driver 11 for SQL Server 的 TLS 1.2 支援更新
ODBC Driver 11 for SQL Server (適用於 SQL Server 的 ODBC 驅動程式 11) 預設不支援 TLS 1.1 或 TLS 1.2。您必須安裝 ODBC Driver 11 for SQL Server 的 TLS 1.2 支援更新。
- 若要安裝 ODBC Driver 11 for SQL Server 的 TLS 1.2 支援更新,請參閱<Microsoft® ODBC Driver 11 for SQL Server® - Windows>。
1.2 - 安裝 SQL Server 2012 Native Client 的 TLS 1.2 支援更新
SQL Server 2012 原生用戶預設不支援 TLS 1.1 或 TLS 1.2。您必須安裝 SQL Server 2012 Native Client 的 TLS 1.2 支援更新。
- 若要安裝 SQL Server 2012 Native Client 更新,請參閱<Microsoft® SQL Server® 2012 Native Client - QFE>。
小弟我剛好有用到SQL Server 2012 Native Client,以上這篇文章是整理的一些心得,SQL Server 2012 Native Client 需要新版的QFE版才支援TLS 1.2
Version:
11.0.7001.0
Date Published:
1/19/2018
The PowerShell Script currently supports the following:
Check if SQL Server Native Client can support TLS 1.2
Check if Microsoft ODBC Driver for SQL Server can support TLS 1.2 This script is restricted to work on x64 and x86 platforms
2021年4月19日 星期一
對於OLAP資料查詢或高成本的join來說,利用indexed view可以大大地提高效能
https://dotblogs.com.tw/ricochen/2009/10/04/10907
ref:
https://dotblogs.com.tw/rockchang/2016/04/26/100926
備註:
https://blog.greglow.com/2019/04/19/sql-do-indexed-views-really-require-enterprise-edition-of-sql-server/
SQL Server Enterprise/Evaluation/Developer以外版本需手動加上WITH(NOEXPAND)
2021年3月17日 星期三
SQL Server全文檢索,CONTAINS和FREETEXT的差異
- 若要比對單字和片語,請使用 CONTAINS 和 CONTAINSTABLE。
- 若要比對意義,而不是確切的用字,請使用 FREETEXT 和 FREETEXTTABLE。
搜尋一個單字的「接近」單字
「近接字詞」表示彼此相近的單字或片語。 您也可以指定分隔第一個和最後一個搜尋詞彙之非搜尋詞彙的數目上限。 此外,您可以依任何順序或是您所指定的順序來搜尋字詞或片語。
例如,您要尋找其中有 "ice" 單字接近 "hockey" 單字,或 "ice skating" 片語接近 "ice hockey" 片語的資料列。
如需鄰近搜尋的詳細資訊,請參閱使用 NEAR 搜尋靠近另一個單字的字詞。
搜尋一個單字的「接近」單字
「近接字詞」表示彼此相近的單字或片語。 您也可以指定分隔第一個和最後一個搜尋詞彙之非搜尋詞彙的數目上限。 此外,您可以依任何順序或是您所指定的順序來搜尋字詞或片語。
例如,您要尋找其中有 "ice" 單字接近 "hockey" 單字,或 "ice skating" 片語接近 "ice hockey" 片語的資料列。
如需鄰近搜尋的詳細資訊,請參閱使用 NEAR 搜尋靠近另一個單字的字詞。
加權字詞搜尋的詳細資訊
在加權字詞搜尋中,「加權值」是表示每個單字與片語在一組單字與片語中的重要程度。 最小的加權值是 0.0,最大則為 1.0。
例如,在搜尋多個詞彙的查詢中,您可以指派每個搜尋單字的加權值,以指出它與搜尋條件中之其他單字的相對重要性。 這類型之查詢的結果會根據您指派給搜尋單字的相對加權,先傳回最相關的資料列。 結果集包含具有任何指定之詞彙的文件或資料列 (或它們之間的內容)。不過,因為與不同搜尋詞彙相關聯的加權值具有變化,所以某些結果會被視為比其他結果更相關。
CONTAINSTABLE 支援加權字詞搜尋。
2021年1月3日 星期日
SQL Server 2019資料庫設定TDE加密後,導致備份檔bak過大
如果不想額外特別加MAXTRANSFERSIZE 參數
必須安裝SQL Server 2019 CU(Cumulative Update) 5 以上
因為微軟官網已經不提供CU5下載
可以安裝最新版的CU8 (KB4577194)
Cumulative Update 8 for SQL Server 2019
https://support.microsoft.com/en-us/help/4577194/cumulative-update-8-for-sql-server-2019
下載Cumulative Update Package 8 for SQL Server 2019 - KB4577194
https://www.microsoft.com/en-us/download/details.aspx?id=100809
SELECT @@VERSION結果
<安裝CU8之前>
Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64) Oct 28 2019 19:56:59 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)
<安裝CU8之後>
Microsoft SQL Server 2019 (RTM-CU8) (KB4577194) - 15.0.4073.23 (X64) Sep 23 2020 16:03:08 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)
https://support.microsoft.com/en-us/help/4552255/kb4552255-cumulative-update-5-for-sql-server-2019
Bug Reference:13495908
KB article number:4561915
Improvement: MAXTRANSFERSIZE no longer required to enable backup compression on TDE encrypted databases
2020年8月25日 星期二
SQL SERVER針對熱資料表(讀寫比率很高)停用鎖定擴大
alter table 資料表名稱 set (LOCK_ESCALATION=disable)
停用會增加記憶體使用量,前提是伺服器記憶體充足
https://dotblogs.com.tw/ricochen/2015/10/24/153680
https://dotblogs.com.tw/ricochen/2012/02/17/69565
https://medium.com/codxfrankenstein/sql-server-%E9%8E%96%E5%AE%9A%E6%93%B4%E5%A4%A7-af9a425e4e3b
2020年7月5日 星期日
SQL Server 2016 標準版SP1之後下放的企業版功能
https://docs.microsoft.com/zh-tw/archive/blogs/sqlreleaseservices/sql-server-2016-service-pack-1-sp1-released
開啟效能魔力窗 T-SQL 視窗函數的實務技巧
比如:累計彙總(cumulative aggregates)、移動平均值(moving averages)
https://channel9.msdn.com/Events/TechDays/TechDays-Taiwan-2014/DBI307
許致學老師在channel9的影片
https://channel9.msdn.com/Events/Speakers/lancelot-hsu
sendStringParametersAsUnicode
但是資料庫column不是開nchar之類的Unicode UCS-2欄位
因為SQL Server需要做型別轉換,會需要用到平行處理,會很耗cpu
從執行計畫可以看到"type conversion in expression"的警告訊息
解法一:column改成nvarvhar nchar這類的欄位
解法二:sendStringParametersAsUnicode設定成false,使用非Unicode格式送到伺服器(比如ASCII/MBCS)
今天上許致學老師的課才知道有這參數
https://sqlwizard.blog/2018/07/29/performance-impact-of-jdbc-connectionstring-property-sendstringparametersasunicode/
https://community.jaspersoft.com/wiki/microsoft-sqlserver-jdbc-connection-sending-string-values-unicode-even-if-they-are-just-simple
2020年6月7日 星期日
2020年6月6日 星期六
2020年5月23日 星期六
SQLServer隔離層級RCSI和SI的比較
- SQL Server預設的隔離層級是RC(Read Committed)
- 使用Row Version Base的隔離層級,要好好管理TempDB並最佳化、大型交易分批做
- 使用RCSI要注意副作用(特別是和金額有關),最好不要在舊系統使用,新系統上線前可以完整測試比較安全
- SQL Server 2005之後支援RSCI(Read Committed Snapshot Isolation)和SI(Snapshot Isolation)的隔離層級,但這兩種層級不支援分散式交易
2019年4月29日 星期一
SSMS SQLCMD模式一次執行多個Script檔案
也可以指令執行,參考以下文章
https://stackoverflow.com/questions/31498316/specifying-relative-path-to-r-command-in-sqlcmd-mode
2019年3月17日 星期日
avg_fragmentation_in_percent 和avg_page_space_used_in_percent
和avg_page_space_used_in_percent低於75表示有內部片段(internal fragmentation)存在
需要ALTER INDEX...REBUILD:
avg_page_space_used_in_percent低於60或是avg_fragmentation_in_percent超過15
需要ALTER INDEX...REORGANIZE:
avg_page_space_used_in_percent介於60與75之間或是avg_fragmentation_in_percent介於10與15之間
索引頁未被填滿的情況稱為內部片段(internal fragmentation)
資料頁分裂(page split)導致頁面實體順序不連續時稱作外部片段(external fragmentation)
大量的內部和外部片段都會對資料的擷取產生負面影響
Microsoft SQL Server 2005 實作與維護 Ⅱ的第4頁、第6頁
ref:
SQL Server 索引重建或索引重組
https://dotblogs.com.tw/joysdw12/2011/05/03/24073
2019年1月28日 星期一
2019年1月27日 星期日
SQL Server 2016開始支援"執行磁碟區維護工作"
Perform Volume Maintenance Task
CAL購買
依存取方式區分為User CAL和Device CAL
另外遠端桌面伺服器(Remote Desktop Services)有特別的RDS CAL
Windows CAL:
不同伺服器但同版本Windows只需要買一次,如果已經買過CAL了,日後採購同版本新Windows伺服器就不需要再購買
Windows Server版本升級,CAL是否需重新購買?
如果有軟體保證權益(SA):不需要重新購買
一般零售/隨機版(沒有SA):需要重新購買
SQL CAL:
如果是微軟SA(Software Assurance)客戶,同上
可以買Core License就不需要購買SQL CAL
用戶端存取使用權和管理授權
https://www.microsoft.com/zh-tw/licensing/product-licensing/client-access-license
https://community.spiceworks.com/topic/82004-is-it-possible-to-upgrade-server-cals



