Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

SQL

ID生成方法の評価観点(主にエンタープライズアプリケーションの視点から)

発端 https://www.asahi.com/articles/ASN5N5VR4N5NULFA01F.htmlwww.asahi.com こんな話がありました。 アプリの開発者に対して「こうやってIDを採番したら、処理が競合したときにIDが重複しますよ」という説明をしたときに、「そんなことが起こる確率は低い…

MyBatisの機能でできないこと

SQL Mapperのコードカバレージを取るツールは(少なくとも公式には)存在しない。 SQL Builderにはシングルクオーテーションなどの文字をエスケープする機能はない。 SQL BuilderはSQL文の一部だけ(WHERE句だけ、など)を作成することはできない。 これが合…

SQL文の性能単価測定に適したパラメータの自動推定

多くのRDBMSには、実行したSQLの実行計画や性能単価を取得する機能が備わっています。SQLの性能単価を測定する際は、検索のパラメータや、テーブル中のデータのバラつきといった前提を、できる限り本番環境に近づけることが重要です。 たとえばPostgreSQLで…

Ordinaly SELECT clause returns ORA-00904 error on Oracle in SQL Fiddle

SQL

Context The "Text to DDL" feature on SQL Fiddle generates DDL like below for Oracle 11g R2. CREATE TABLE Table1 ("value1" int) ; INSERT ALL INTO Table1 ("value1") VALUES (1) SELECT * FROM dual ; Problem This ordinal SELECT clasuse returns …

Return value of comparison operator in SELECT clause

SQL

Background Some RDBMS can contain the result of comparison operator in SELECT clause. However, the returned values are different between RDBMS. Result MySQL I used MySQL 5.6 on SQL Fiddle. DDL (MySQL) CREATE TABLE Table1 (`value1` int, `va…