Compras através da loja FirebirdSQL geram comissões que financiam o desenvolvimento open source do Firebird.
| Licença: Por Usuário |
|---|
Descrição: Cópia em PDF do livro |
100% do lucro deste item vai para a Firebird Foundation para financiar o desenvolvimento do banco de dados Firebird.
A segunda edição do livro indispensável para desenvolvedores de banco de dados Firebird SQL que desejam usar todo o potencial do Firebird 5.
O tempo voa, e agora temos a segunda edição do livro indispensável para todo desenvolvedor Firebird. Ele ficou maior: adicionamos um capítulo sobre melhorias de BLOB que se tornaram disponíveis na versão menor 5.0.3, e introduzimos muitas correções de erros e erros de digitação.
1,5 anos após o lançamento, está claro que o Firebird 5 se tornou a versão mais rapidamente adotada do Firebird: os desenvolvedores migraram para ele mais rápido do que para qualquer outra versão do Firebird, e seu número está crescendo. As razões são óbvias: o Firebird 5 é mais rápido e mais confiável do que versões anteriores, e possui recursos de migração amigáveis ao desenvolvedor que tornam a migração muito fácil.
No entanto, notamos que muitos desenvolvedores, mesmo aqueles que migraram para a v5, não usam todos os recursos modernos e, portanto, não recebem todas as melhorias possíveis que estão disponíveis no Firebird 5.
Entre os novos recursos mais impactantes, várias capacidades de destaque exigem atualização do seu código SQL e PSQL existente, mas proporcionam ganhos substanciais de desempenho e funcionalidade. Os índices PARTIAL permitem que você crie índices altamente seletivos em subconjuntos específicos de linhas usando condições WHERE, reduzindo drasticamente o tamanho do índice e melhorando a velocidade de consulta para dados filtrados.
A cláusula SKIP LOCKED permite processamento de fila sem conflitos e gerenciamento de tarefas simultâneas, exigindo atualizações nas suas instruções SELECT, mas eliminando deadlocks em cenários multiusuário.
Instruções MERGE aprimoradas com a nova cláusula WHEN NOT MATCHED BY SOURCE fornecem capacidades de sincronização de dados mais poderosas, embora operações MERGE existentes precisem de atualizações de sintaxe.
O pacote RDB$BLOB_UTIL introduz funções de leitura e manipulação de BLOB baseadas em chunks que exigem reescrita de procedimentos de manipulação de BLOB, mas oferecem eficiência de memória e capacidades de streaming significativamente melhores.
Finalmente, a cláusula RETURNING aprimorada agora suporta retornos de múltiplos registros de operações INSERT, UPDATE e DELETE, necessitando ajustes em procedimentos PSQL existentes, mas permitindo operações em massa mais eficientes com feedback de resultado imediato. Neste livro você encontrará explicações completas e detalhadas dos novos recursos e como usá-los efetivamente.
Neste livro você encontrará explicações completas e detalhadas dos novos recursos do Firebird 5 e como usá-los efetivamente.
Preface 2
Preface to the 2nd Edition of Detailed New Features of Firebird 5 2
Preface to the 1st Edition of Detailed New Features of Firebird 5 3
SQL Query Optimization: Faster Than Ever 3
Scalability: Growing with Your Data 3
Parallel Execution: Harnessing the Power of Modern Hardware 4
Prepared Statement Cache 4
Improved Compression of Records 4
SQL Query Profiling: Shining a Light on Performance Of Complex Stored Procedures 4
Wrapping Up and More Materials 5
Practical Migration Guide To Firebird 5 5
And, let's start! 5
1. New ODS and upgrade without backup-restore 7
2. Improving the data compression algorithm 8
3. Cache of prepared (compiled) statements 16
3.1. A little theory 16
4. Tracing the COMPILE event 18
5. Per-table statistics in isql 20
6. Parallel execution of maintenance tasks 21
6.1. Parallel execution of tasks in the Firebird kernel 21
6.1.1. Practical recommendations for parameters 22
6.1.2. Multi-threaded index creation or rebuild 22
6.2. Parallel execution of maintenance tasks by Firebird tools 23
6.2.1. Parallelism when performing backups using the gbak 23
6.2.2. Parallelism when performing restore using the gbak 24
6.2.3. Parallel manual sweep using the gfix tool 25
6.2.4. Parallel icu update using the gfix utility 27
7. Improvements in Optimizer 28
7.1. Cost estimation of HASH vs NESTED LOOP JOIN 28
7.2. Cost estimation of HASH vs MERGE JOIN 30
7.3. Transforming OUTER JOIN into INNER JOIN 31
7.4. Converting subqueries to ANY/SOME/IN/EXISTS in semi-join 34
7.5. Preliminary evaluation of invariant predicates 47
7.6. Faster IN with list of constants 50
7.7. Optimizer strategy ALL ROWS vs FIRST ROWS 53
7.8. Improved plan output 55
7.9. How to get stored procedure plans 58
8. New features in SQL language 60
8.1. Support for WHEN NOT MATCHED BY SOURCE clause in MERGE statement 60
8.1.1. WHEN MATCHED 61
8.1.2. WHEN NOT MATCHED [BY TARGET] 61
8.1.3. WHEN NOT MATCHED BY SOURCE 61
8.1.4. Example of using MERGE with clause WHEN NOT MATCHED BY SOURCE 62
8.2. Clause SKIP LOCKED 62
8.3. Support for returning multiple records by operators with clause RETURNING 64
8.4. Partial indices 65
8.5. Functions UNICODE_CHAR and UNICODE_VAL 71
8.6. Query expressions in parentheses 71
8.7. Improved Literals 72
8.7.1. Full syntax of string literals 72
8.7.2. Complete syntax for binary literals 73
8.8. Improved predicate IN 73
8.9. Package RDB$BLOB_UTIL 74
8.9.1. Using the function RDB$BLOB_UTIL.NEW_BLOB 74
8.9.2. Reading BLOBs in chunks 75
9. Why SKIP LOCKED was developed? 78
9.1. Preparing the Database 78
9.2. Script simulating a job queue 79
9.3. Clause SKIP LOCKED 85
9.4. Job queue without conflicts 86
9.5. Next steps 87
9.6. Summary 89
10. Network Protocol Improvements 90
10.1. Support for bidirectional cursors in the network protocol 90
10.2. Improvements in BLOB transfer over the network 90
10.2.1. How BLOB data is transferred over the network 90
10.2.2. Using BLOB + VARCHAR together 94
10.2.3. BLOB transfer improvements in Firebird 5.0.2 95
10.2.4. BLOB transfer improvements in Firebird 5.0.3 96
10.2.5. Comparison of BLOB transfer speed in different Firebird versions 97
10.2.6. Article on transferring BLOB objects over the network 99
11. SQL and PSQL Profiling 100
11.1. Starting a Profiling Session 101
11.2. Pausing a Profiling Session 102
11.3. Resuming a Profiling Session 102
11.4. Finishing a Profiling Session 103
11.5. Canceling a Profiling Session 103
11.6. Resuming a Profiling Session 103
11.7. Finishing a Profiling Session 104
11.8. Canceling a Profiling Session 104
11.9. Discarding Profiling Sessions 104
11.10. Flushing Profiling Session Statistics to Snapshot Tables 104
11.11. Setting the Statistics Flush Interval 105
11.12. Snapshot Tables 105
11.12.1. Table PLG$PROF_SESSIONS 105
11.12.2. Table PLG$PROF_STATEMENTS 106
11.12.3. Table PLG$PROF_REQUESTS 106
11.12.4. Table PLG$PROF_CURSORS 107
11.12.5. Table PLG$PROF_RECORD_SOURCES 107
11.12.6. Table PLG$PROF_RECORD_SOURCE_STATS 108
11.12.7. Table PLG$PROF_PSQL_STATS 109
11.13. Auxiliary Views 109
11.14. Profiler Launch Modes 110
11.14.1. Option DETAILED_REQUESTS 110
11.14.2. Running the profiler in a remote connection 117
11.15. Examples of using the profiler to find "bottlenecks" 119
12. Conclusion 129
Purchase now:
Remember that purchasing services and products in Firebird SQL shop directly funds the development of free open source Firebird SQL.