Shanghai Tengke Education Dream Database Training Dry Goods Compartiendo la primera experiencia de la base de datos nacional DM6 (3)

3. Búsqueda de texto completo

  Tabla comparativa de funciones de búsqueda de texto completo DM y Oracle, Mysql, PostgreSQL: 1-3

  La función de búsqueda de texto completo de DM es crear un índice de texto completo basado en su diccionario de sinónimos existente, y luego la consulta de texto se realiza completamente en el índice. Vamos a probarlo

seleccione * de test_context;
nombre de identificación        
1 1 Copió 31 directorios vacíos en 4 directorios vacíos bajo / u01 / dmdb / dmdbms / jar / eclipse    
2 2 Reemplazar FILE = / u01 / dmdb / dmdbms / desktop / uninstall.desktop    
3 3 达 梦 数据库 DMDBDMS    
3 filas obtuvieron
tiempo utilizado: 0,265 (ms).

  A continuación, cree un índice de texto completo en el campo de nombre.

SQL> crear índice de contexto test_name en test_context (nombre);
tiempo utilizado: 27.519 (ms).

SQL> seleccione a.name, b.name de systables a, syscontextindexes b donde a.name = 'test_context' y a.id = b.tableid;
name name        
1 test_context test_name    
1 filas obtuvieron

SQL> seleccionar * de test_context donde contiene (nombre, 'vacío');
全文 索引 'test_name' 无效 , 需要 重新 填充 .error code = -1453

SQL> alterar el índice de contexto test_name en la reconstrucción del contexto de prueba;
tiempo utilizado: 355.452 (ms).

SQL> seleccione * de test_context donde contiene (nombre, 'vacío');
id nombre        
1 1 Copiado 31 directorios vacíos en 4 directorios vacíos bajo / u01 / dmdb / dmdbms / jar / eclipse
1 filas obtenidas    
tiempo utilizado: 0,431 (ms).

SQL> seleccione * de test_context donde contiene (nombre, '达 梦');
id nombre        
1 3 达 梦 数据库 DMDBDMS    
1 filas tienen
tiempo de uso: 0.368 (ms).

  A partir de la prueba anterior, se puede ver que la búsqueda de texto completo de DM no puede consultar su proceso inmediatamente después de la creación. Primero debe completarse. Es decir, después de cada actualización, los datos actualizados no se pueden encontrar mediante la búsqueda de texto completo de inmediato, y debe completarse primero. Aparecerá en el índice de texto completo. Sin embargo, el soporte de DM para chino sigue siendo muy amigable y no es necesario instalar otros complementos, después de todo, está hecho en China.

 

  Cuatro, respaldo físico incremental y recuperación

SQL> establecer mytest de la base de datos actual;
establecer la base de datos actual mytest 设置
当前 数据库 为 'mytest'
tiempo utilizado: 0.124 (ms).

SQL> seleccione el nombre, escriba de systables donde escriba! = 'S';
nombre tipo        
1 bk_2 U    
2 test_backup U    
3 test_backupDMBLOB V    
4 test_context U    
5 test_contextDMBLOB V    
6 test_part V    
7 test_part00DMPART P    
8 test_part01DMPART P    
9 test_part2 H    
10 test_part3 R    
10 filas consiguieron
tiempo usado: 0.169 (ms).

  Actualmente hay 10 tablas en la biblioteca MYTEST, por lo que hacemos una copia de seguridad completa de esta biblioteca.

SQL> copia de seguridad de la base de datos mytest completa en "/ u01 / dmdb / mytest_bak01";
tiempo utilizado: 25.211 (ms).

SQL> crear tabla bk_001 (id int);
tiempo utilizado: 0,658 (ms).

  Una vez completada la copia de seguridad completa, cree una nueva tabla bk_001 y luego realice una copia de seguridad incremental.

SQL> copia de seguridad de la base de datos mytest incremento a "/ u01 / dmdb / mytest_bak02";
tiempo utilizado: 17.266 (ms).

SQL> seleccione el nombre, escriba de systables donde escriba! = 'S';
nombre tipo        
1 bk_001 U    
2 bk_2 U    
3 test_backup U    
4 test_backupDMBLOB V    
5 test_context U    
6 test_contextDMBLOB V    
7 test_part V    
8 test_part00DMPART P    
9 test_part01DMPART P    
10 test_part2 H    
11 test_part3 R    
11 filas consiguieron
tiempo usado: 0.173 (ms).

  Como puede ver, actualmente hay 11 tablas en la biblioteca MYTEST, y luego elimine algunas tablas, y también elimine la tabla bk_001 recién creada.

SQL> eliminar tabla bk_001;
SQL> eliminar tabla bk_2;
SQL> eliminar tabla test_backup;
SQL> salir

 

  Luego complete la recuperación de la biblioteca MYTEST, use la función sf_get_bak_by_name para encontrar la ruta de respaldo y tome los datos que se recuperarán sin conexión antes de la recuperación.

[root @ test ~] # rlwrap / u01 / dmdb / dmdbms / bin / isql SYSDBA / SYSDBA @ localhost
isql V6.0.2.51-Build (2009.12.23)
inicio de sesión exitoso
SQL> seleccione sf_get_bak_by_name ('/ u01 / dmdb / mytest_bak01 ','mi prueba');
1 /u01/dmdb/dmdbms/data/mytest_20100330223956_1.bak    
1 filas tienen
tiempo usado: 0.303 (ms).

SQL> restaurar la base de datos mytest completa desde '/u01/dmdb/dmdbms/data/mytest_20100330223956_1.bak';
tiempo utilizado: 1787.245 (ms).

SQL> modificar el conjunto de mytest de la base de datos en línea;
modificar la base de datos mytest establecido

tiempo en línea utilizado: 1028.146 (ms).
SQL> establecer la base de datos actual mytest;
设置 当前 数据库 为 'mytest'
tiempo utilizado: 0.145 (ms).

SQL> seleccione el nombre, escriba de systables donde escriba! = 'S';
nombre tipo        
1 bk_2 U    
2 test_backup U    
3 test_backupDMBLOB V    
4 test_context U    
5 test_contextDMBLOB V    
6 test_part V    
7 test_part00DMPART P    
8 test_part01DMPART P    
9 test_part2 H    
10 test_part3 R    
10 filas tienen
tiempo usado: 0.313 (ms).

  Como puede ver, ahora hay 10 tablas, que se han restaurado al estado anterior a la creación de la tabla bk_001. Entonces estamos haciendo una recuperación incremental

SQL> establecer el sistema de base de datos actual;
设置 当前 数据库 为 'SISTEMA'
tiempo utilizado: 0,128 (ms)
SQL> modificar la base de datos mytest establecida fuera de línea;
tiempo utilizado: 1,181 (ms).

SQL> seleccione sf_get_bak_by_name ('/ u01 / dmdb / mytest_bak02', 'mytest');
1 /u01/dmdb/dmdbms/data/mytest_20100330224024_1.bak    
1 filas tiene
tiempo usado: 0.312 (ms).

SQL> restaurar la base de datos mytest incremento de '/u01/dmdb/dmdbms/data/mytest_20100330224024_1.bak';
tiempo utilizado: 11.065 (ms).

SQL> modificar el conjunto de mytest de la base de datos en línea;
tiempo utilizado: 1027,506 (ms).

SQL> establecer mytest de la base de datos actual;
设置 当前 数据库 为 'mytest'
tiempo usado: 0.123 (ms).

SQL> seleccione el nombre, escriba de systables donde escriba! = 'S';

1 bk_001 U    
2 bk_2 U    
3 test_backup U    
4 test_backupDMBLOB V    
5 test_context U    
6 test_contextDMBLOB V    
7 test_part V    
8 test_part00DMPART P    
9 test_part01DMPART P    
10 test_part2 H    
11 test_part3 R    
11 filas tienen
tiempo usado: 0.304 (ms).

  Como puede ver, se ha recuperado por completo.

  La función de copia de seguridad y recuperación incremental física es una función histórica para los grandes sistemas de bases de datos De los ejemplos de copia de seguridad anteriores, se puede ver que las funciones de copia de seguridad y recuperación de DM6 son relativamente completas.

  Cinco, resumen

  Lo anterior es mi experiencia con DM6. A través de las tres pruebas anteriores, se puede ver que las funciones de DM6 son relativamente completas en general. Las funciones principales de la base de datos básicamente pueden cumplir con las diversas aplicaciones de las bases de datos generales de nivel empresarial. Al mismo tiempo, también proporciona una función de partición vertical especial, que merece su atención. Además, debido a que el propósito de este artículo es experimentar la base de datos DM6, no ha probado el rendimiento y la estabilidad de DM6. En el entorno real, cómo son el rendimiento y la estabilidad de DM, y debe explorarse y resumirse en la práctica.

Supongo que te gusta

Origin blog.csdn.net/qq_42726883/article/details/108651468
Recomendado
Clasificación