misc.log

日常茶飯事とお仕事と

SQLServer

SQL Serverのインデックスを再構成する

数年運用しているシステムの開発DB(SQL Server)の動作が怪しい部分があったため、DBを利用するミドルウェアの開発元に問合せたところインデックスの再構成を試してほしいとの依頼が。しかし、現時点でSQL Server Management Studioの「データベース」のツ…

SQL ServerにUnicode文字を保存する際の「Nプリフィックス」って何をしているのか

仕事の中で、「豆板醬」という品名をSQL Serverのnvarchar列に登録しようとして文字化けするという事態が起きました。以前から「文字列の前にNを付ける、Nプリフィックスでユニコード文字を投入可能」ということは知っていたのですが、「そもそもなぜ?」に…

職場LAN内で別PCで動くSQL Serverにつながらない(未解決)

職場のLANのPC上で動くSQL Server Expressに別PCから接続しようとしても繋がらないという状況。いろいろ試してみてもうまくいかないし、そのあたり詳しい社員は在隊勤務でいないし……。とりあえず試行錯誤(といっても大して試してないけれど)の記録を書いて…

Visual StudioのDataSet、クエリー設定でCase文+パラメータでエラーが出る

自分用メモ。詳細についてはまだ精査していないので突っ込みはご容赦を……。 研修課題用のプログラム、C#、Visual Studioで型付きデータセットを作る際に設定するクエリーに、CASE文と、CASE文中に「@」から始まるパラメーターを設定して登録しようとしたと…

SQL Serverの互換性レベルって何?

自分用メモ。 SQL Serverの話題で、とある関数が互換性レベル130以上で利用可能というのを見て「互換性レベルって何?」となったので検索。どうやら SQL Serverのバージョンごとに互換性レベルという数値が決められている。 各バージョンごとに互換性を保証…

DBの「登録日」「更新日」の指定方法に関するメモ

業務システムを作っていると、結構データベースの各レコードに「登録日」「更新日」などを設定するようになっている設計を見かけます。ここのデータを誰がいつ書き込んだのかを記録することで、後々いろんな調査などに使うというものですね。これ、過去に見…

C#のDataGridViewに西暦1年1月1日を入れると空欄になる件

新人研修で挙がってきた質問、とりあえず分かったことまで書き添えてteratailに投げてみた。teratail.comVisual C#データベースプログラミング入門作者: 日向俊二出版社/メーカー: カットシステム発売日: 2011/06/01メディア: 単行本購入: 1人 クリック: 2回…

SQL ServerでのLike検索でエスケープすべき文字

ちょっと理由をうまく説明できなかったのでメモ。SQLでデータベースから情報を取得する際に「Like」で指定する場合、ワイルドカードとして使える文字があります。そういう「ワイルドカード文字」のような特殊用途文字自体を検索する場合、「これは特殊文字だ…

SQL Serverの裏側関連情報メモ

SQL ServerがSQLをどのように解釈して動いているかについて説明するための準備用資料。ちょっとメモ。 開発者のための SQL Server パフォーマンス チューニング/最適化講座 上記URLはSQL Server 7のものですが、英語のスライドを日本語で補足する形で3章に分…

SQL Server Management Studioのインストール

SQL Serverで研修課題などを作ってアクセスしてもらおうとしたのですが、そういえばSQL Server Management Studioってどうやってインストールするのだったかな……と検索したところ……。今はフリー版が公開されているのですね。知りませんでした。 SQL Server M…

SQL Server 2008R2をWindows10にインストールしようとしてエラー

SQL Server 2008R2をWindows10にインストールしようとして下記のエラーが発生してしまいました。そもそもサポートされているOSではないのですが、まぁそこはサポート云々関係なくちょっと調査で動きを見たいだけなので……。 アプリケーションのコンポーネント…

SQL ServerのSQL整形アドイン(これはいい!)

SQL Server Management StudioでのSQL作成時に、SQL文を整形してくれるツールが無いかと思い探したところ、Poor Man's T-SQL Formatterというアドインが紹介されているのを見つけました。SQL Server Management Studio で SQLを一発整形 – gomokulog作成元の…

SSISでパッケージファイルのパスワードが開けない、設定ファイルもうまくいかない…(調査中メモ)

Microsoft Visual Studio 2013 ShellのSQL Server Integration Services(SSIS)デザイナーでSSISの処理定義を作成し、ビルドしてできた拡張子dtsxのファイルをDBサーバー上で動かそうとしているのですが、うまく行きません。特に何も設定無しで作成し、デー…

SQL Server、OpenQueryでのSQLは文字列連結などが使えない?

SQL ServerからOracleにリンクテーブル経由でアクセスしていろいろデータを持ってくる処理を作成中。サーバー名やらスキーマ名やらをピリオドでつないだSQL記法だとインデックスが使えず遅いため、SQL ServerのOpenQuery命令でSQLごとOracleに渡し、Oracle側…

ASP.NET/ADO.NETからの実行だと遅いストアドプロシージャ問題、とりあえず解決にめど

昨日書いたこれ……www.backyrd.netSQL Server Management Studioから実行すると1~2秒で結果を返すストアドプロシージャが、なぜかASP.NETのWebアプリから実行すると4分~5分もかかるという問題。とりあえず速度差が無くなったので報告。 対応案 Stackoverflo…

SQL Server、ストアドプロシージャ実行計画のキャッシュを確認する(メモ)

メモです。忘れないように。 SQLサンプル SQL Serverのストアドプロシージャ、実行計画のキャッシュ情報を調べるSQL例。 select * from sys.dm_exec_procedure_stats where object_id='2049442375' order by last_execution_time desc select * from sys.dm_…

Webアプリから実行すると遅いSPが、SSMSからだと速い

※一応解決。最新情報は → http://www.backyrd.net/entry/20160810/1470796194 ちょっとメモ。とあるストアドプロシージャが、Webアプリ(ASP.NET、ADO.NET経由)で実行するとタイムアウトしたりしなかったりなのですが、SSMS(SQL Server Management Studio…

自動生成されたユニークキーをSQL Serverで扱う場合の注意

何かのシステムが吐き出したキー文字列をSQL Server上でキーとして利用する場合、照合順序に気をつけましょう。特にアルファベットを多用したキーの場合、キー重複でやられる可能性があります。SQL Serverで日本語を扱うDBを作った場合、たいていテーブルや…

SQL Serverの照合順序、略号の意味

SQL Serverの照合順序設定についている「CI_AS」とかって「Case Insensitive」「Accent Sensitive」の略だったのですね……気になるようできちんと調べたことがありませんでした。納得です。こちらのブログで説明されていて知りました。 SQL Server 照合順序の…

文字コード関連の過去エントリー

なんか自分よりずっと前からウェブ関連やってる人たちが全然文字コードとか気にしてなくてノウハウも持ってなくてちょっと参ってるので、とりあえず過去に自分が書いたものを列挙しておきます。何か聞かれたときにさっと調べられるように。 文字コード全般 w…

SQL Server のText型に対するInsertに関する制約は?

お仕事メモ。SQL Server 2012上に用意したテーブルのText型カラムに、長い文字列を突っ込もうとしたところ「入らない」という事態が発生。書き込み処理はLinux上で稼働するPHPから。疑うべきポイントはドライバやSQL Serverの設定やらいろいろありそうなので…

SQL ServerからImage列の内容をファイルとして出力する

SQL ServerのImage型にバイナリデータが突っ込まれている場合、それの内容を見たいと思っても出す方法が見当たりません。先日、そういうデータの取り出し作業があった際はVB.NETでツールを作ったのですが、どうやらSQLからbcpコマンドを無理やり実行する方法…

DTSの定義情報をVisual Studio 2008で確認する(断念…)

結論からいうと、自分の作業環境ではできませんでした。念のため試したことを記載しておきます。参考まで。古いシステムの刷新プロジェクトで、SQL ServerのDTS(Data Transformation Services)が利用されていたので、その内容を見たいのですが…。手元にあ…

SQL ServerからExcelにエクスポートすると先頭空白のデータから空白が消える?

現象等厳密に把握できていないので、とりあえずメモ書き。SQL Server 2012のManagement Studioから、エクスポート機能でテーブルの内容をExcel 2007形式にエクスポートしたところ、先頭が半角空白のデータから先頭空白が消えるという現象がでてしまいました…

だれだよvarcharで宣言したのは。ユニコード文字がDBに入らない

SQL Serverを使った古いシステムの移植作業でDBの定義はそのまま使いまわすということで作業を進めていたのですが、なぜか投入した文字データが化ける。よくよく見てみると型宣言がvarcharになっていました。これですが、SQL Serverだと varchar : 可変長文…

SQL Serverのストアドファンクションで引数を省略する……使いづらい(笑

SQL Serverのストアドプロシージャでは、引数宣言の際にデフォルト値を設定することで引数の省略が可能になります。たとえばこんな感じ。 @KEYVALUE int, @OPTIONVALUE int = 1 ストアドファンクションも同じように宣言できるのですが、省略宣言した場合でも…

SQL Serverのインデックスサイズは1件900バイトまで

とある設計資料で、巨大な可変長文字列「だけ」のテーブルで、その列が主キー設定されていました。主キーということはインデックスが作成され、インデックス自体にはその内容が転記されるかな?と思ったため、「これはインデックスサイズでかすぎてアウトだ…

SQL Server→PostgreSQLのテーブル変換

お仕事で、SQL ServerからPostgreSQLへのDB移設を行う必要が出てきたので、具体的な方法等について確認中。とりあえず、公式コミュニティで関連資料やツールをまとめられていたのでそこを参考にしています。 下記リンクに各種DBとの変換に関する情報がまとめ…

Windows Server 2008 R2上のPHPからSQL Server 2000に接続する

7月に、Windows Server 2008 R2上で動くPHPで作ったアプリから、SQL Server 2000にアクセスできるか?というのを試していたのですが、試行の過程を記録していませんでした。簡単ですがメモっておきます。多分あとで自分が使うので。発端については7月15日に…

PHPからSQL Server 2000に接続する(2015年にw)

2015年に関与した案件で、客先で稼働を続けるSQL Server 2000にPHPからアクセスできるのか?という話が挙がり、調べた情報が発掘されたのでメモしておきます(発掘日: 2021/10/21)。 必要なドライバー等 SQL Server 2000に最新のPHPから接続するには、汎用…