仕事の備忘録

IT系技術とか、カスタマーサービスとか

第12回 SQL Server 2019勉強会(1st Anniversary) に参加してきた その1

本日SQL Serverの勉強会に参加してきた。

sqlserver.connpass.com

5月にde:code 2018に参加して以来の外部での勉強会となった。その間に仕事で初めてOffice365とPower BI とAzureを使い、最低限のレベルは確保できたがまだまだだと思った次第である。とりあえず最初から【初級者、中級者向け】SQL ServerのAzure移行のいろいろ までに参加することができた。参加した部分だけではあるが、ブログ書くまでが勉強会なので書く。

【初級者向け】SQL Serverのクエリ実行プランとパフォーマンス -SQL Serverエンジン、インディクスの基礎

今回は初心者向けに基礎テーマを行うとのことでクエリ実行プランの動作を詳細説明。そこでの一言が印象的であった。

SQLは書き方次第で本当にDBの動きを良くも悪くもする。最近どうしてもテーブルを複数結合するためにパフォーマンスが悪くなる仕様があり、1週間ほど悩んでお客様に相談したところ「あれ?数分もかからないはずだけど」という返答を頂いた。弊社親会社もグループ各社もシステム以外のほとんどの方がSQLをかける会社である。SQLをお願いしていただいたら大量のSUM関数をマクロで生み出していて、テーブル結合をせず実施していた。自分の思い込みの設計が誤っていたのだ。その時のことをこの言葉で思い出した。とにかくクエリ実行プランとその内部動作を知るとSQLをもっと早くできるので、勉強しておくべきだと思う。リソース増強より安くて手軽だ。

しかしこの辺りすっかり忘れており、MCP資格を2005の時に取得したのだがやり直しだなと思った次第。

【中級者、上級者向け】SQL Server 2019 最新情報 ReCap

Microsoft MVP - Data Platform Ozawaさんに聞くSQL Serverの質問会

私のブログに何度も出てくるムッシュ小澤さんによるSQL Server 2019情報、および質問会。小澤さんはMSの毎月実施しているSQL Server セミナーや、MSの大規模イベントでも解説されている国内で一番有名なSQL Server技術者である。過去ブログでは以下で発表者側として参加されている。 

testedquality-tech.hatenadiary.jp

testedquality-tech.hatenadiary.jp

testedquality-tech.hatenadiary.jp

今回は2019の解説であったが、プレゼン資料が配布されないとのことで写真OKだったものの私のカメラは性能が良くないので、ツイートでメモした。また解説資料が多いので質問を早めに終わらせようと、先にSQL Serverの質問会を行うことになった。

 msdbはSQL Serverのシステム用DBと呼ばれるもの。DBをSQL Server Integation Service をつかって移行作業をする場合、作成したスクリプトにはコンピューター名が含まれている。移行先ではコンピューター名変わることが一般的だと思うが、その場合コンピューター名が作成したスクリプトに直書きされているので、これを書き換える必要があるとのこと。スクリプトは平文となるので、手作業修正ができる。msdbの移行部分に埋まっているということなんですね。

 SQL Serverの新規作成時、デフォルトではDBファイルとログファイルの2種を1ファイルずつ(mdb,ldb)2ファイル作成できる。しかしDBファイルとログファイルを2つ以上指定することも可能だ。この新規作成時についての質問。

ファイルグループについては公式のドキュメントに記載がある。

データベース ファイルとファイル グループ | Microsoft Docs

昔から分割機能はあり、処理速度向上に役立つという記載もあるのだが、実際に運用していた際の自分の検討だと、バックアップの復旧を考えると分割によるリスク増大を許容できず見送った。せめてトランザクションログと別ディレクトリにするなどで、I/Oの効率UPを図るのがよさげだ。また、データサイズが大きいことを質問者の方が気にされていたが大きいからと言って圧縮だけは避けたほうがよいとのこと。理由が明確でなるほど!と思った。実際に私も仕事でストレージが不足して圧縮をしたときがあり、速度低下がユーザーの体感レベルで下がり問題になったことがあるので、みにつつまされた。

 トランザクションログもそうだがSQL Serverの物理ファイルは、一度大きくなるとレコードやテーブルを削除してもファイルサイズはそのままである。トランザクションログも同様。なのでトランザクションログのファイルサイズが大きい場合には、まず本当に中身が入っているのかを確認したほうがよい。統計情報でも見れるが、私は楽をするためデフォルトのレポートで見ていた。割合が円グラフで出てきて、他の人にもわかりやすい。 そのうえで中身がある場合、切り捨てが発生してない理由が何かあるはずで、それはシステムとログの状況を調べるしかない。ストレージを大きくするのをオンラインのままはできないので、業務が停止できない状況でログがむやみに増大するのは運用が厳しいだろう。

ということで質問がある程度落ち着いたところで2019の技術解説が始まった。

こちらも面白かったのだが、もう眠いので明日続きを書く。

初めて仕事で Microsoft Azure を使っている

私はTwitterのプロフィールにも書いているがMicrosoftが好きである。20年以上前のことを書かせてもらう。昔話になる。

本当に私は入社時システム開発に向いてないと思われていたし、自分もそう思っていた。大学は理系だったが、授業で習うホスト機でのプログラムを全く面白いと感じがことがなく最低限しかやらなかった。当時国立大でも情報処理の勉強はホスト機が主流だった。PC-9801でのゲームは高校の部活で遊んでいた程度でプログラムを学生時代にやることはなかった。

そんな私にプログラムが面白いと思わせてくれたのは、会社に入って2年目に国内発売されたばかりの日本語版Visual Basic 2.0 だった。というか、Cを研修で習っても全く頭に入らず困っていた私に上司が「お前はGUIのほうが向いている」と言って買ってくれたのだ。

当時まだまだホスト機全盛で、ホスト機を貸し出すだけで儲けが出る状態。一方ホスト機以外、Unix系OSやMS-DOSなどを使うコンピューターを「オープン系」と呼んでいたが、会社内では「子供のおもちゃ」とホスト機部署の人たちに揶揄されていた。そのおもちゃの筆頭がWindows 3.1 だった。

でも、そのおもちゃのおかげで、Cを挫折した私は自分でPCを買うくらいにプログラムが好きになった。香取慎吾が10代の頃にCMをしていたIBMのPCを購入したのはこのころ。36万したので物価を考えると当時のボーナスをそれにあてたはずだ。そのPCにインストールを最初にしたのがVisual Basic 2.0 だった。

そこからさらに数年後、Windows 95 が発売され「おもちゃ」と揶揄されたPCは仕事の道具して爆発的に普及した。最初はPCが嫌いで自分で触らず報告書なども「これ清書しといて」で済ませていた上司もいたが、あっという間にPCは一人一台となり提出物はWordになった。契約書や議事録を部下に書かせていた人たちは、結局社長への報告書をPCで書けず会社をリタイアしていったし、Unix系はホスト機から移行されるようになり、データセンター内にPCラックがあっという間にホスト機の場所を奪っていった。Visual Basic 2.0 Visual Basic 4.0になり業務アプリを簡単に作成できると流行り始め、Visual Basic 6.0になることには業務アプリ開発の一大勢力となった。

と、いうことを思い出すたび、何がいつ流行って廃れるか本当にわからないんで、いつも勉強しとかんといけないなと思う。システムの勉強を家でやるべきかどうかという議論がちょっと前にあったが、好きでやってる人が数多くいるIT業界なので、そこで生業とするための努力として勉強は必要だと思う。とにかく知識が少ない私の唯一のとりえは、プログラムを面白いと思える気持ちとあきらめが悪い点だから、しつこく勉強するしかないと考えている。ましてや私は子育て優先してて、時短勤務な時が長かったので、短時間でも会社にメリットである様な成果を出すしかなかった。

で、最近では Microsoft Azureも好きだ。これまた社内で利用事例がありつつもなかなか仕事としては使うことなく、もくもくと一人で触っていた。Bot作成やPower BI作成などもボッチ開発であった。しかし、つい先週から社内でAzureの仕事に携わるようになった。別件で初体験のReactも平行なので大変なこと限りないのであるが、初めて仕事でAzureを触って楽しくて仕方ない。

正直、これは神様が試していると思っている。仕事以外に今月来月は町内会もPTAも忙しくて、明日はお祭りで焼きそば売っているだろう。でもやる。やるったらやる。こんな時間にブログ書いて、誓うくらいうれしい。仕事で好きなことができる幸せを目いっぱい味わっておきたいと思う。

※夜中の文章は見直すべきなのですが勢いのまま掲載

UdemyでReactの勉強をしてる

前月よりReactの勉強継続中である。別の仕事も運用も家事もしながらで、なんといってもHTML5開発自体が初めてな状況、結構きつい。来月からの設計開発開始で既にAWSで構築するインフラ周りはむっちゃすごいエンジニア達がいて、すべてお願いして終わってしまったので顧客対応とか開発とか体張る覚悟まではしてみた。

ということでReact。採用理由は会社の諸事情で別システムとの連携を今後考慮する必要があり、そちらに移植を考えてのこと。別システムの方にレクチャーは受けられても自分が理解しないと開発はできない。レクチャーではReact本家のHandOnでの勉強を進められたが、英語の理解とReactの理解を一緒には無理な語学力の為、日本語での即戦力が欲しかった。そこで日本語のオンライン講習探してを買ってみた。まだ7割しか終わってないが結構役立っているので紹介をしておく。

買ったサービスはudemy。ゆーでみーと読む。世界展開しているサービスですが日本語版はベネッセが主管。

www.udemy.com

オンライン学習はほかにも色々あるが、React+Reduxまで扱っているコースがUdemyが充実していたのが理由。Progateとかドットインストールとか周りで評判よかったので使ってみたかったけど今回は断念。かつその時最大92%オフで、個人で買いやすかった。今見たらまだセール中な模様。下はReactで検索した結果のコース一覧。英語コースも一緒に出てくる。

f:id:testedquality:20180825230327p:plain

2本購入。1本はCodeSandboxという別サービスを使ってクライアントでのReact開発環境構築なしで勉強できるもの。ブラウザとネットがあれば講習を受けられるため、子供と一緒に漫画喫茶に行ってなど夏休み中助かった。またこちらはテキストですべての講習を公開していることもあり動画が見れない開発時などにも、勉強しやすかった。動画が禁止されているとかの人も大丈夫である。

www.udemy.com

もう一つはクライアント環境の作り方からすべて動画で提供。APIを使ったアプリケーションをシーケンス図などを使って業務的な観点での講習。クライアント環境の作り方を学べるのがありがたい。

www.udemy.com

勉強の成果は来週からのプロトタイプ作成からだ。週末で残りを終わらせて100%完了にしたいもんだ。全く何もできてないのだが自分を追い込むためにここに書いておく。

はてなブログhttps化完了。そして仕事で勉強すること

はてなのhttps化は無事に完了した。全3ブログをすべて実施。いまのところ5年前から行っている水産高校応援ブログでも苦情は来てないので何とかなっている模様。すでに25日よりChromeが予告通りの警告表示を開始しているため、間に合ってよかったと思っている。

internet.watch.impress.co.jp

さて、6月にボットを公開してから、仕事の勉強が大量に発生してLINE bot化に着手できてない。数年ぶりのフロントエンド&バックエンドの新規開発担当となったのだ。人手がないため優秀な方々がフルスタックな活躍をしているので、せめて足を引っ張らないように自分ができるところを広げるためには勉強しかない。

というと「偉いねー、私にはできない」と言われることがある。部署の方針で現業と平行、かつ家事のワンオペは続いているため残業は最低限となれば家や昼休みしか勉強する時間は取れないし、最新技術を常に見るべき仕事であるのでプライベートときっちり分けられるものでもないと考えるが、「私にはできない」というのは「あなたはおかしい」が割と含まれていることが多いのがつらい。

 

ということで現在Reactの勉強をオンラインとKindleで実施中。

reactjs.org

ReactはFacebook、Instagramが提供するJavaScript開発技術。フロントエンド開発向け。公式のチュートリアルがよいと別プロジェクトでReactを利用した会社の若者たちにいわれたものの、実際にやると概要が見えづらい(実は日本語訳があると先ほど知ったので後悔している)

React 0.13 日本語リファレンス | js STUDIO

本もあるのだがまだ全般発展中なので、若者曰く本通りに動かないことが多々ありストレスがたまるらしい。そこでKindleの電子書籍でアップデートがあるものを数冊購入して読んだ。しかしWindows版KindleをPCで開き、掲載ソースを動かすためコピーしようとしたら、コピー防止のためか不要な半角がソースコード全般に追加される極悪仕様でかえってストレスがたまることになった。

非常に悩んでいたところ、Twitter経由で90%オフの広告を出していたオンライン勉強サイトUdemyを数日前に知り、割引になっていて評判がよかったReactの有料セミナーを2つ買ってみた。オンラインドキュメントと動画とオンラインテキストの3種類。テキストがあれば動画をみなくてもよい親切設計で、会社でも勧めることができている。

www.udemy.com

セミナー7時間を想定しているようなので、終了したら評価を書きたいと思う。全部自腹で買ったし!

Web App Bot でSkype公開申請向けの修正を実施する その2

QnA Maker を使ったボットがSkypeからRejectされた。その修正対応の続きを書く。

testedquality-tech.hatenadiary.jp

先に結論からいうと正式にSkypeボットとして認証を得た状態で公開できた。以下の説明よりボットを見てもらったほうが早いかもしれない。単純に水産高校&商船専門高等学校を探すボットだ。インストール先は以下に掲載した。

botsuisangogo.hatenablog.jp

続きを読む

https化道半ば

Chromeがhttps以外のURLを警告出すように変更されることもあり、思い切ってはてなブログのhttps化を始めた。まずはこの技術ブログを実施。こちらはもともとhttpsをリンク先に極力選んでいたこともあり問題なさそうだ。

一方数年前から実施している水産高校ブログは、リンク先がhttpしかないものも多い。変更は当面難しいかもしれないがどこかで行う必要はあるだろう。

 

Web App Bot でSkype公開申請向けの修正を実施する その1

前回RejectされたSkype側からの指摘点修正を実施する。再度内容を確認。

f:id:testedquality:20180530220003p:plain

訳すとこのような意味と認識した。

  1. 非黒と非白の背景色を持つボットのアバターのイメージにすること。
  2. ユーザーが連絡先としてボットを追加すると、ボットは自動的にウェルカムメッセージを表示する必要があります。これにより、ユーザーエンゲージメントが向上し、ユーザーへ正しくガイドできます。
  3. 不明なコマンドの受信時にヘルプ画面を表示します。

1.はアイコンを全般色を変えるかデザインを変える必要がある。

2.についてはBot Framework の初期動作では返答しないので全く気付いてなかった点。これの修正を実施する。できればFrameworkを変えてほしい(pull request しろということだろうが)

3.はヘルプメッセージというか使い方の説明はしていたのだが、改めてヘルプページを作成する。

 

それぞれ対応を実施した。

1.は最近話題のおすすめデザインを提案するPowerPointを使ってみることに。元の

f:id:testedquality:20180602223817p:plain

 をアイコンに入る様にレイアウト変更ののち、パワポに貼ってみた。色々提案してくれたのから色味とかアイコンを使って以下のようなアイコンを作成。

f:id:testedquality:20180602224312p:plain

2.は1日難航。実はAzure Bot Service で提供される QnA Maker 向けテンプレートはそのまま利用するとユーザが何か入力するまで待機する仕様になっている。もともと詳しくソースを見ていなかったので、何をどうしたらよいものかわからないので、一日Bot Framework のSDKを見て対応策を考えることになった。ドキュメントの中で以下の記述をみつけて愚痴ったりした。

最終的に単純にActivityTypes.ConversationUpdateの値が取れたら挨拶用のテキストをセットして、メッセージを受け取ったように見せかけた。

f:id:testedquality:20180602225150p:plain

3.はヘルプページを作成。はてなブログデフォルトでは日付番号になるため、エイリアス名をわかりやすくした。まだ機能がほぼないので書くのが恥ずかしかった。

https://botsuisangogo.hatenablog.jp/entry/help

 

ここまで準備して最終的に1.のアイコンを登録して最終確認をしようとした。が、今日完成しなかった。

f:id:testedquality:20180602225408p:plain

ボットプロファイルのアイコンをSkypeのアイコンとして利用するため、先ほどのアイコンをアップロードしようとしたが、画面を閉じて戻ってくると元のアイコンに戻ってしまうのだ。どうやらアップロードがエラーになっている模様。

f:id:testedquality:20180602225854p:plain

理由が全く分からないので、対応しようがない・・・もう少し調べることが必要そうだ。再申請はもう少しかかるかもしれない。