話說現在開始要學另外三種資料庫,真是很難消化啊
最近在裝Oracle Instant Client就遇到很多問題,在Win上可以裝x32與x64的版本,在試Toad for Oracle時,又看到只支援x32版client的訊息,新版的好像可以支援x64,裝來裝去兩個都裝就出問題了,Linux反而比較單純
裝完Client後,最基本連Oracle的工具就是SQL*Plus,我嘗試在Ubuntu上安裝也是花好多時間,原因就是網路上很多文章都誤導了我,連Oracle Database Online Documentation的說明也是不清不楚,像是SQL*Plus在Linux有分x32與x64版本,實際用起來有什差別嗎?你去網路上查看看差在哪裡,幾乎99%命令列都是打sqlplus,問題x64的實際上要打sqlplus64耶,這差很多的,害我明明裝好x64了,卻一直試著執行sqlplus,卻一直出錯說找不到命令,百思不解為何?以為是environment variable出錯,還是權限不足,怎麼try都不行,其實打sqlplus64就OK了,真是浪費我一堆時間(其實真正原因是我不熟啦...還怪人)
在Ubuntu上的裝法如下,以下是我剛裝完Ubuntu後,只花十分鐘就裝好SQLPlus用的命令了,供各位參考
2013年12月13日 星期五
2013年12月10日 星期二
2013年9月28日 星期六
[CTE]Common Table Expession到底有沒有使用TEMPDB呢?
今天遇到一位同事,聊了一下跟我說CTE少用,因為CTE會佔用TEMPDB的空間,用的不恰當會把TEMPDB灌爆,講的煞有其事,我心想好像不是吧,印象中CTE並不會佔用TEMPDB的空間,但我也沒有去證實過也就沒有反駁了
之後我查了一下WITH common_table_expression (Transact-SQL),上面是有提到Specifies a temporary named result set, known as a common table expression (CTE). 不知是不是看到temporary就認為一定是存在TEMPDB裡?
那到底會不會佔用TEMPDB呢?我找到Steve這位大師的Temp Table vs Table Variable vs CTE and the use of TEMPDB這篇文章,值得一看,講得清楚明白啊
之後我查了一下WITH common_table_expression (Transact-SQL),上面是有提到Specifies a temporary named result set, known as a common table expression (CTE). 不知是不是看到temporary就認為一定是存在TEMPDB裡?
那到底會不會佔用TEMPDB呢?我找到Steve這位大師的Temp Table vs Table Variable vs CTE and the use of TEMPDB這篇文章,值得一看,講得清楚明白啊
2013年9月23日 星期一
[T-SQL]CTE也可以用來簡化你的UPDATE喔
CTE一般說來都拿來參考用,也就是拿來Join,但我不知道竟然可以直接拿來Update呢,而不用Join喔,第一次看到有人這樣用我還很驚訝,心想怎麼不需JOIN呢?
不多說,直接看例子吧
不多說,直接看例子吧
2013年9月12日 星期四
[DMVs]Analysis Services也有專用的DMVs
前一篇文章我介紹了幾個XMLA的例子,不管是Process,Backup或Restore都是XMLA的命令,但其實我最先接觸的是XMLA的方法,因為我想取得Cube的Metadada,所以我使用Diccover方法,可是發現實在太難用了,後來發現竟然有替代Discover方法的的東西,就是Data Management Views (DMVs)
看到DMVs,DBA應該都很熟悉,不過這個是Analysis Services(AS)的DMVs,不是SQL Server(SQL)的DMVs,使用起來是有差異的喔
看到DMVs,DBA應該都很熟悉,不過這個是Analysis Services(AS)的DMVs,不是SQL Server(SQL)的DMVs,使用起來是有差異的喔
- 工具:SQL的DMVs是用Database Engine Query,而AS的DMVs得用MDX Query或DMX Query
- 查詢語法:SQL的用的是Transact-SQL的Select,而AS的是SELECT (DMX)
2013年8月28日 星期三
2013年8月19日 星期一
[T-SQL]PIVOT兩欄甚至多欄的方法
最近遇到一個報表的特殊需求,要將兩個欄位的列轉成欄(PIVOT),一般頂多處理一欄吧,這次要處理兩欄,而且轉置後,將會多出五十幾個欄位喔...@@
基本上可以用CASE處理;也可以用PIVOT,雖然BOL上沒提到PIVOT可以多欄,實際上可以用多個PIVOT來做,但最後還要GROUP BY再SUM起來有點麻煩;也可以分別對兩個欄位各自PIVOT後,再JOIN起來,一樣可達到目的
我在想說有沒有更好的方法,結果在網路上看到有人用PIVOT把多欄當一欄來做,超簡單的,我想都沒想到可以這樣用呢,就是先將多欄UNPIVOT成一欄,再PIVOT就OK啦
基本上可以用CASE處理;也可以用PIVOT,雖然BOL上沒提到PIVOT可以多欄,實際上可以用多個PIVOT來做,但最後還要GROUP BY再SUM起來有點麻煩;也可以分別對兩個欄位各自PIVOT後,再JOIN起來,一樣可達到目的
我在想說有沒有更好的方法,結果在網路上看到有人用PIVOT把多欄當一欄來做,超簡單的,我想都沒想到可以這樣用呢,就是先將多欄UNPIVOT成一欄,再PIVOT就OK啦
2013年7月11日 星期四
[SSAS]Client unable to establish connection; 08001
原本處理Cube時都好好的,不知為何搬移Cube後,重新處理就發生下列錯誤
<Error ErrorCode="3238395904" Description="OLE DB 錯誤: OLE DB 或 ODBC 錯誤: A network-related or
instance-specific error has occurred while establishing a connection to SQL
Server. Server is not found or not accessible. Check if instance name is
correct and if SQL Server is configured to allow remote connections. For more
information see SQL Server Books Online.; 08001; Client unable to establish
connection; 08001; Encryption not supported on the client.; 08001。" Source="Microsoft SQL Server 2012 Analysis Services" HelpFile="" />
<Error ErrorCode="3239182436" Description="高層級關聯式引擎有錯誤。 無法與具有 DataSourceID 為 'SRC_DB',名稱為 'SRC_DB' 的資料來源建立連接。" Source="Microsoft SQL Server 2012 Analysis Services" HelpFile="" />
上網搜尋到兩篇相關文章,SSAS processing error: Client unable to establish connection; 08001; Encryption not supported on the client.; 08001與Fixing Cube Processing ODBC Errors
第一篇的解法比較容易,把Data Source的Provider換成舊版的就解決了,第二篇是要更換Services Account然後重啟SSAS
兩篇的解法我都試過,最後我覺得把Provider換掉最快了,然後我還是不知道為什麼,因為就我的latop發生問題,Server沒事...
2013年7月8日 星期一
[T-SQL]CROSS APPLY的用法你會幾種?
在沒看過The many uses of CROSS APPLY這篇之前,以前我只知道配合Inline Table-Valued Function來使用,今年五月改做BI的工作之後,常需寫ETL Script,遇到要UNPIVOT Table的狀況,想到之前設計的Inline Table-Valued Function裡面有用到Tally Table,由Tally Table想到SQL 2008之後的table value constructors (TVCs),彼此配合使用就可以很簡單的UNPIVOT了說
也就是說我只知道兩種用法,沒想到還可以切割XML跟重用計算欄位呢!那你知道幾種呢?
有兩個常需父母操煩小孩後,時間都給了小孩,都沒時間念書,也很少有時間寫Blogger了,現在居然瘦到十幾年前高中時的體重了,有沒有給他誇張,所已請見諒我很少更新Blogger了...
也就是說我只知道兩種用法,沒想到還可以切割XML跟重用計算欄位呢!那你知道幾種呢?
有兩個常需父母操煩小孩後,時間都給了小孩,都沒時間念書,也很少有時間寫Blogger了,現在居然瘦到十幾年前高中時的體重了,有沒有給他誇張,所已請見諒我很少更新Blogger了...
2013年6月25日 星期二
[DBA天團爭霸戰]快去參加
網址在此---> [DBA天團爭霸戰]
台灣微軟舉辦兩屆的SQL HERO後,終於又辦了SQL Server的競賽囉
你夠TOP的話可以一人參加競賽,也可以三人組團報名
這次獎品有證書耶,連藍袍級的都有
前兩屆的SQL HERO好像都沒有證書喔
趕快去報名吧
反正藍袍級的可以無限制挑戰
記得7/31前通過線上考試即可
台灣微軟舉辦兩屆的SQL HERO後,終於又辦了SQL Server的競賽囉
你夠TOP的話可以一人參加競賽,也可以三人組團報名
這次獎品有證書耶,連藍袍級的都有
前兩屆的SQL HERO好像都沒有證書喔
趕快去報名吧
反正藍袍級的可以無限制挑戰
記得7/31前通過線上考試即可
2013年4月23日 星期二
SSDT記得要裝新版喔
SQL 2012更新到SP1之後,別忘了去Available Today: SSDT—December 2012安裝新版的SSDT,才會有T-SQL Editor,就可以直接在SSDT中編輯T-SQL喔,如下圖
2013年4月11日 星期四
[Documenting]結合Table Layout與Value
現有個需求是製作Table Layout的文件,有個比較特別的是還需要列出一筆對應的欄位值,產生Table Layout很簡單,列出一筆資料也很簡單,結合的話可能得用到Execl,把那一筆資料轉置,我想把這幾個步驟自動化,之後如果要製作所有的資料表時就會方便很囉了
2013年3月10日 星期日
2013年3月5日 星期二
Security Change Snapshot2取得安全性權限的資訊
參考Nate Hughes的Security Change Snapshot這篇,可以取得SQL Server Logins, Database Permissions and Role Members的安全性資訊,還可用日期取得異動的紀錄,這想法很不錯,但少了伺服器層級的安全性資訊,於是自己加了上去,並改成SP就放上來啦,很感謝Nate Hughes的分享
2013年1月28日 星期一
出現大量Network I/O等待
之前有啟用SQL 2008R2的資料蒐集,也安裝SQL Server® 2012 Performance Dashboard Reports,一直想說有了這些好看的報表可以幫我看到什麼?今早就看到了奇怪的東西了,伺服器統計表的SQLServer等候出現大量的Network I/O等待,如下表,點進去發現是ASYNC_NETWORK_IO的比例最高
2013年1月10日 星期四
DBCC CHECKDB出現2570一致性錯誤
最近升級到SQL 2008 R2 x64版,在備份資料庫前加了資料完整性檢查的排程,隔天發現完整性檢查排程執行失敗,執行的指令如下
DBCC CHECKDB (test) WITH NO_INFOMSGS, ALL_ERRORMSGS, DATA_PURITY
在SQL Server記錄檔裡也可以看到傾印檔案的位置,如下圖
訂閱:
文章 (Atom)